{"id":"lsp-dip-ocp-dependency-chain","text":"LSP, DIP, and OCP form a causal dependency chain within SOLID: behavioral substitutability (LSP) is required for abstraction dependence (DIP), which in turn enables extension without modification (OCP) — making LSP the foundational guarantee on which the other two rest.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["lsp-enables-abstraction-dependence","dip-enables-ocp"],"outlist":[],"label":"Transitive dependency — LSP enables DIP (depth-1) and DIP enables OCP (depth-1), so LSP transitively enables OCP"}],"dependents":["solid-enables-gof-ecosystem","solid-sufficient-design-foundation","solid-two-orthogonal-axes"],"metadata":{"source_type":"derived","review_result":"pass"},"created_at":"2026-06-17T17:55:06+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":"lsp-dip-ocp-dependency-chain","truth_value":"IN","reason":"SL justification valid","antecedents":["lsp-enables-abstraction-dependence","dip-enables-ocp"],"label":"Transitive dependency — LSP enables DIP (depth-1) and DIP enables OCP (depth-1), so LSP transitively enables OCP"},{"node":"lsp-enables-abstraction-dependence","truth_value":"IN","reason":"SL justification valid","antecedents":["lsp-substitutability-of-subtypes","dip-depend-on-abstractions-not-concretions","program-to-interface-not-implementation"],"label":"Substitutability guarantees make abstraction-dependence safe"},{"node":"lsp-substitutability-of-subtypes","truth_value":"IN","reason":"premise"},{"node":"dip-depend-on-abstractions-not-concretions","truth_value":"IN","reason":"premise"},{"node":"program-to-interface-not-implementation","truth_value":"IN","reason":"premise"},{"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":"ocp-open-for-extension-closed-for-modification","truth_value":"IN","reason":"premise"}]}}