Proof in the shape reasoning actually takes: introduce a connective, then eliminate it. Assumptions are made, used, and discharged. The engine below is a real natural-deduction proof checker for propositional logic — rendered, not quoted.
source Gentzen, Untersuchungen über das logische Schließen (1935), Mathematische Zeitschrift 39, 176–210 · doi:10.1007/BF01201353
A proof is a tree of rule applications. Leaves are assumptions; each internal node names a rule that derives its formula from the formulas above it.
Rules come in pairs per connective:
A formula is proved only when the tree is closed — every assumption has been discharged — and the proved formula is a tautology.
Intro-and-elim is Gentzen's frame. the-syllogism handled Aristotle's fixed forms; this sphere generalises the same discipline to full propositional logic with arbitrary connectives and nested assumptions.
The proof term here (a tree of rule nodes) is exactly the computational content read off by the-curry-howard — this is its logic half.
Live re-check. Recomputes rule soundness over full truth tables and re-validates the proof tree on every render.
Rule set — 8 sound inference rules (intro/elim for ∧ ∨ → ¬).
Goal — the hypothetical syllogism, a tautology:
Proof term — a tree using three assumptions [A→B]u, [B→C]v, [A]w, two →E steps, three →I discharges.
The checker walks the tree, verifies each node against its rule, tracks open assumptions, and confirms the goal is a tautology by exhaustive truth table.
AMBER — per-rule soundness is checked, but that is not the full meta-theorem. Global soundness/completeness (Gentzen's cut-elimination result) is assumed here, not reproven.
AMBER — the rules are classical. Drop double-negation elimination and you get intuitionistic logic, where some classical tautologies are unprovable. That boundary is real.
Planted void (disclosed): add affirming the consequent (A→B, B ⊢ A) to the allowed rules. An invalid formula becomes “provable”. The Witness (7) recomputes soundness and catches it live.