{"id":"lsp-enables-abstraction-dependence","text":"LSP is a prerequisite for DIP and programming-to-interfaces: if subtypes cannot reliably substitute for supertypes, then depending on abstractions becomes unsafe and the entire abstraction-based design strategy collapses.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["lsp-substitutability-of-subtypes","dip-depend-on-abstractions-not-concretions","program-to-interface-not-implementation"],"outlist":[],"label":"Substitutability guarantees make abstraction-dependence safe"}],"dependents":["interface-inheritance-enables-pattern-ecosystem","lsp-dip-ocp-dependency-chain"],"metadata":{"source_type":"derived","review_result":"pass"},"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":"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"}]}}