{"id":"solid-two-orthogonal-axes","text":"SOLID's five principles can be organized along two structural axes: a substitutability-to-extensibility dependency chain (LSP→DIP→OCP, where behavioral substitutability enables abstraction dependence, which in turn enables extension without modification) and a cohesion axis (SRP+ISP, dual expressions of cohesion at class and interface granularity) — together these axes cover complementary aspects of the design constraint space, with the dependency chain addressing composition and the cohesion axis constraining responsibility scope.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["lsp-dip-ocp-dependency-chain","srp-isp-dual-cohesion-principles"],"outlist":[],"label":"These two depth-2/depth-1 conclusions describe independent substructures within SOLID; recognizing their orthogonality reveals SOLID as a two-axis coordinate system rather than a flat list"}],"dependents":["lsp-linchpin-connects-solid-axes","solid-isomorphic-to-pattern-mastery"],"metadata":{"source_type":"derived","review_result":"pass","repair_action":"softened"},"created_at":"2026-06-17T18:38:48+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":"solid-two-orthogonal-axes","truth_value":"IN","reason":"SL justification valid","antecedents":["lsp-dip-ocp-dependency-chain","srp-isp-dual-cohesion-principles"],"label":"These two depth-2/depth-1 conclusions describe independent substructures within SOLID; recognizing their orthogonality reveals SOLID as a two-axis coordinate system rather than a flat list"},{"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"},{"node":"srp-isp-dual-cohesion-principles","truth_value":"IN","reason":"SL justification valid","antecedents":["srp-rooted-in-cohesion","isp-related-to-grasp-high-cohesion","srp-canonical-definition","isp-no-forced-dependency-on-unused-methods"],"label":"Both principles independently cite cohesion as their root, but constrain it at class vs. interface granularity"},{"node":"srp-rooted-in-cohesion","truth_value":"IN","reason":"premise"},{"node":"isp-related-to-grasp-high-cohesion","truth_value":"IN","reason":"premise"},{"node":"srp-canonical-definition","truth_value":"IN","reason":"premise"},{"node":"isp-no-forced-dependency-on-unused-methods","truth_value":"IN","reason":"premise"}]}}