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)