| .. | ||
| modus_ponens_cases.json | ||
| propositional_cases.json | ||
| README.md | ||
Proof-Chain Fixture Scaffold
Status: ADR-0202 grammar filled; not wired into the live suite
Scope: data-only fixture scaffold; not wired into the live test suite
This directory is the independent validation scaffold for the propositional
canonicalizer and first modus_ponens proof-chain rule. The formula grammar,
atom declaration shape, and atom-to-FeatureBundle binding convention are governed
by docs/decisions/ADR-0202-proposition-representation-contract.md.
The fixture inventory in propositional_cases.json records concrete formula
strings, per-case atoms blocks, expected behaviors, and rationale. It is ready
for a future proof-chain harness to wire, but it is intentionally not part of the
live test suite yet.
Atom Bindings
Where a case atom maps to a recognizable fact, the atom records the intended
ADR-0144/ADR-0143 FeatureBundle binding as binding.features. The corpus does
not author EpistemicNode.node_id; that is assigned at recognition time.
Schematic budget atoms use binding: null.
Validation Boundaries
The three modus_ponens cases are validated at entailment only. Their typed rule
reasons (conclusion_mismatch / missing_implication) are marked pending phase
2.3 / ADR-0205, when the rule checker lands.
modus_ponens_cases.json is the independent 24-case adversarial MP corpus
authored against the ADR-0202/ADR-0205 contract. It was not authored by validating
against the implementation. After ADR-0205 landed, reconciliation cross-checked
24/24 on outcome and reason against the real rule at merge b304270. Reason
labels are consolidated to ADR-0205's five closed reasons:
unique_canonical_conclusion, missing_implication,
unestablished_antecedent, conclusion_mismatch, and
conclusion_disagreement.
The two out-of-regime cases assert out_of_decidable_regime and record that this
is the LogicRegimeError reason produced by merged main after ADR-0201.1.
Required Categories
equivalent_key: propositions that must reduce to identical canonical keys.different_key: near-miss propositions that must not collapse.tautology_or_contradiction: formulas that reduce to TRUE/FALSE leaves.modus_ponens: proof-chain admission and refusal examples.acyclicity: circular dependency refusal cases.out_of_regime: quantified or predicate input outside propositional logic.budget: scalable ROBDD blowup cases that must refuse when over budget.
Interface Assumptions
- Formula grammar: ADR-0202 section 1.
- Atom declaration and FeatureBundle binding: ADR-0202 section 2.
- TRUE/FALSE leaf identity:
T/F. - Budget refusal reason:
canonicalization_budget_exceeded. - Proof-chain rule and DAG fields are fixture data only until
proof_chainlands.
Non-Goals
- No runtime wiring.
- No second canonicalizer implementation.
- No CNF/DNF fallback expectations.
- No predicate-logic equivalence claim.
- No repo capability claim.