Truth tables, scoped proofs, and semantic tableaux
Explore propositional validity, countermodels, scoped natural deduction, and bounded open/closed branch evidence.
Find a model and a countermodel
The implication is contingent. The countermodel makes p true and q false; the table is complete for its two atoms, not a sample.
Compare valid and contradictory formulas
Construct and replay normal forms
Canonical CNF and DNF can be much larger than a hand-simplified equivalent. Their purpose here is to expose minterms and maxterms and make replay simple.
Check a line-by-line derivation
Changing the last conclusion to p leaves a failed :modusPonensMismatch record. RiX checks the rule; it does not trust the rule label.
Discharge a scoped assumption
Subproof inserts the assumption as its first local line. The outer proof sees only the checked subproof record, not its assumption as a freely usable outer premise. Additional free premise and assumption lines are rejected inside this first self-contained subproof model. This makes implication introduction a real scope operation; a later outer-line import feature will need to name and replay every imported dependency explicitly.
Reason by cases
Both cases must start from the corresponding disjunct and reach exactly the same conclusion. Reversing the two case records is allowed; omitting a case or changing either goal is rejected.
Prove a negation from contradiction
bottomElim is also available when a derivation already contains Bottom. These are explicit checked rules, not automatic theorem search.
Bounded work stays visible
Truth tables reject requests above their explicit atom budget. Tableaux offer a different route: expand connectives on branches and stop a branch as soon as it contains a contradiction.
Close a tableau to prove classical validity
Validity search starts by asking for a valuation making the formula false. Every branch closes, so no such valuation exists. Trace rules :alpha extend one branch; :beta splits it. A closed branch retains the contradictory signed formula and its prior literal assignments so the closure can be inspected.
Read an open branch as a countermodel
The countermodel sets p=1,q=0, just as the truth table did. In default satisfiability mode, an open branch instead supplies a model making the source true. All witnesses are checked against the original formula.
Distinguish an answer from exhaustive search
The second search finds the open p branch within two steps, although the other branch remains unresolved. It has answered satisfiability without finishing every branch. Never interpret a mere budget limit as a theorem.
Finally, try p.Or(p.Not()).Tableau({= mode=:validity }): it proves excluded middle in classical semantics. The natural-deduction core above is intuitionistic-compatible and has no excluded-middle axiom. The systems are complementary course topics, not interchangeable proof labels.
Further work
1. Build the truth table for contraposition. 2. Compare canonical CNF with a shorter equivalent written by hand. 3. Construct an andIntro proof and eliminate each conjunct on later lines. 4. Change one orElim case goal and inspect the retained failure reason. 5. Use bottomElim to derive a chosen formula from an explicit contradiction. 6. Compare a tableau for contraposition with its complete truth table. 7. Change a tableau witness or remove a trace step and inspect CheckTableau.