A syntactic proof system that derives conclusions from premises using formal rules of inference.
Semantic entailment means is true in every model where all of are true. A model (or interpretation) consists of a domain of objects plus assignments of meaning to all constants, functions, predicates, and variables. To verify semantic entailment directly, you’d need to check infinitely many such models.
Sequent calculus provides inference rules: patterns like “if you can prove and you can prove , then you can prove .” These rules depend only on formula structure, not meaning. You build a proof tree by repeatedly applying rules until you reach trivially true statements (axioms).
If the rules are sound (derived sequents are semantically valid) and complete (all semantic entailments are derivable), then:
Soundness
If you can build a valid proof tree from to using the inference rules, then actually holds in every model where all of holds. The rules don’t let you “prove” something that doesn’t follow.
Completeness
If is true in every model satisfying , then there exists some proof tree that derives from . No semantic truth escapes the proof system.
Gödel’s Completeness Theorem: First-order predicate logic has a proof calculus that is both sound and complete. No logic stronger than first-order can have both.
Undecidability
There is no algorithm that takes and , always terminates, and correctly outputs whether . (Related: halting problem, church-turing thesis)
We do get semidecidability: by completeness, if then a proof exists. Systematically enumerate all possible proof trees; if one exists, you eventually find it. But if , the search runs forever. You can’t distinguish “no proof exists” from “haven’t found it yet.”
| Result | Statement |
|---|---|
| Completeness | |
| Undecidability | No algorithm decides for all inputs |
| Semidecidability | Can confirm , but can’t confirm |
| Incompleteness | Some true arithmetic statements have no proof |
Completeness and incompleteness aren’t contradictory: completeness says “every semantic consequence of your axioms is provable,” incompleteness says “in systems rich enough for arithmetic, some statements true in aren’t provable from the axioms.”
Why arithmetic? Because addition and multiplication let you encode formulas and proofs as numbers (Gödel numbering). The system becomes powerful enough to make statements about itself, including “this statement is not provable.” Systems too weak for arithmetic can’t self-reference this way, so they escape the incompleteness trap.
You build a proof tree by applying inference rules that break down complex formulas into simpler components. The goal is to reach axioms or trivially true sequents at the leaves.
In words: To prove a property holds for all natural numbers :
: Prove the base case, that holds for the smallest .
: Prove the inductive step, that for any arbitrary , if holds for , then it also holds for .
Then you can conclude holds for all .
The below is not a minimal but a practical set of inference rules; many rules can be derived from others.
Inference Rules
A sequent has the form: $$
K_1, K_2, \ldots \vdash G
If the goal is already among the assumptions, you’re done.
Example: — closed immediately, the goal is an assumption.
ContrAssum (CA): $$
\text{CA}: \quad K\ldots, A, \neg A \vdash G
If (false) is among assumptions, you can prove anything.
2. Structural Rules
Drop: $$
\frac{K\ldots \vdash G}{\text{Drop}: \quad K\ldots, A \vdash G}
To prove , first prove some intermediate statement , then prove using . This requires “an idea” for what should be.
Indirect: $$
\frac{K\ldots, \neg G \vdash \bot}{\text{Indirect}: \quad K\ldots \vdash G}
To prove : assume and derive a contradiction.
Example: To prove , we’d need to show .
A-¬: $$
\frac{K\ldots, \neg G \vdash A}{\text{A-}\neg: \quad K\ldots, \neg A \vdash G}
To prove : prove AND prove (two branches).
Example: $$
\frac{\vdash p(a) \quad\quad \vdash q(b)}{\text{P-}\land: \quad \vdash p(a) \land q(b)}
If you have as assumption: you can split it into two separate assumptions and .
Example: $$
\frac{p(a), q(b) \vdash r(c)}{\text{A-}\land: \quad p(a) \land q(b) \vdash r(c)}
To prove : assume and prove . (Or symmetrically, assume and prove .)
Example: $$
\frac{\neg p(a) \vdash q(b)}{\text{P-}\lor: \quad \vdash p(a) \lor q(b)}
Case distinction: if you know , prove in both cases (two branches).
Example: $$
\frac{p(a) \vdash r(c) \quad\quad q(b) \vdash r(c)}{\text{A-}\lor: \quad p(a) \lor q(b) \vdash r(c)}
To prove : assume and prove .
Example: $$
\frac{p(a) \vdash q(b)}{\text{P-}\to: \quad \vdash p(a) \to q(b)}
If you have as assumption: you need to prove (to “trigger” the implication), then you get to use.
Modus Ponens (MP): (common shortcut) $$
\frac{K\ldots, F_1, F_2 \vdash G}{\text{MP}: \quad K\ldots, F_1 \to F_2, F_1 \vdash G}
Modus Tollens (MT): $$
\frac{K\ldots, \neg F_2, \neg F_1 \vdash G}{\text{MT}: \quad K\ldots, F_1 \to F_2, \neg F_2 \vdash G}
To prove equivalence: prove both directions (two branches, each is an implication).
A-↔: (substitution)
If you have as assumption, you can replace occurrences of by (or vice versa) in assumptions or in the goal.
4. Equality Rules
P-=: $$
\text{P-}=: \quad K\ldots \vdash t = t
where is a fresh Skolem constant not appearing anywhere else.
To prove “for all , holds”: introduce a new arbitrary constant and prove for that .
Example: $$
\frac{\vdash p(\bar{x})}{\text{P-}\forall: \quad \vdash \forall x: p(x)}
where is some term built from available symbols.
If you have as assumption, you can instantiate it with any specific term to get as a new assumption. The stays available for more instantiations.
Example: $$
\frac{\forall x: p(x), p(a) \vdash q(b)}{\text{A-}\forall: \quad \forall x: p(x) \vdash q(b)}
where is some term built from available symbols.
To prove : find a specific witness term and prove .
Example: $$
\frac{\vdash p(a)}{\text{P-}\exists: \quad \vdash \exists x: p(x)}
where is a fresh Skolem constant not appearing anywhere else (including in !).
If you have as assumption: introduce a new constant representing “some that satisfies ”, and add as assumption. The existential disappears (you can only skolemize it once).
Example: $$
\frac{p(\bar{x}) \vdash q(b)}{\text{A-}\exists: \quad \exists x: p(x) \vdash q(b)}