Syntax and Semantics for Classical Propositional Logic
Deduction System
We adupt the Tait-calculus as a deduction system of classical propositional logic.
abbrev Sequent (α : Type*) := List (Formula α)
inductive Derivation : Sequent α → Type _
| axL (Δ a) : Derivation (Formula.atom a :: Formula.natom a :: Δ)
| verum (Δ) : Derivation (⊤ :: Δ)
| or {Δ p q} : Derivation (p :: q :: Δ) → Derivation (p ⋎ q :: Δ)
| and {Δ p q} : Derivation (p :: Δ) → Derivation (q :: Δ) → Derivation (p ⋏ q :: Δ)
| wk {Δ Γ} : Derivation Δ → Δ ⊆ Γ → Derivation Γ
| cut {Δ p} : Derivation (p :: Δ) → Derivation (~p :: Δ) → Derivation Δ
instance : OneSided (Formula α) := ⟨Derivation⟩
Semantics
Soundness and Completeness
The soundness theorem is proved by induction of derivation.
instance (T : Theory α) : Sound T (Semantics.models (Valuation α) T)
The conpleteness theorem is also proved by constructing maximal consistent theory.
instance (T : Theory α) : Complete T (Semantics.models (Valuation α) T)