{"id":"dip-enables-ocp","text":"DIP is a prerequisite for OCP: depending on abstractions rather than concretions (DIP) is the mechanism that makes systems open for extension without modification (OCP), because new implementations can be added behind stable abstract interfaces.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["dip-depend-on-abstractions-not-concretions","ocp-open-for-extension-closed-for-modification","program-to-interface-not-implementation"],"outlist":[],"label":"Abstraction-dependency is the mechanism enabling extension-without-modification"}],"dependents":["adapter-facade-implements-dip-at-boundaries","lsp-dip-ocp-dependency-chain"],"metadata":{"source_type":"derived","review_result":"unnecessary"},"created_at":"2026-06-17T17:53:17+00:00","updated_at":"2026-06-18T06:15:08+00:00","reviewed_at":"2026-06-18T06:15:08+00:00","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"dip-enables-ocp","truth_value":"IN","reason":"SL justification valid","antecedents":["dip-depend-on-abstractions-not-concretions","ocp-open-for-extension-closed-for-modification","program-to-interface-not-implementation"],"label":"Abstraction-dependency is the mechanism enabling extension-without-modification"},{"node":"dip-depend-on-abstractions-not-concretions","truth_value":"IN","reason":"premise"},{"node":"ocp-open-for-extension-closed-for-modification","truth_value":"IN","reason":"premise"},{"node":"program-to-interface-not-implementation","truth_value":"IN","reason":"premise"}]}}