Basic definitions and properties of proof system related notions #
This file defines a characterization of the system/proof/provability/calculus of formulae. Also defines soundness and completeness.
Main Definitions #
LO.System F S: a general framework of deductive systemSfor formulaeF.LO.System.Inconsistent 𝓢: a proposition that states that all formulae inFis provable from𝓢.LO.System.Consistent 𝓢: a proposition that states that𝓢is not inconsistent.LO.System.Sound 𝓢 𝓜: provability from𝓢implies satisfiability on𝓜.LO.System.Complete 𝓢 𝓜: satisfiability on𝓜implies provability from𝓢.
Notation #
𝓢 ⊢ φ: a type of formalized proofs ofφ : Ffrom deductive system𝓢 : S.𝓢 ⊢! φ: a proposition that states there is a proof ofφfrom𝓢, i.e.φis provable from𝓢.𝓢 ⊬ φ: a proposition that statesφis not provable from𝓢.𝓢 ⊢* T: a type of formalized proofs for each formulae in a setTfrom𝓢.𝓢 ⊢!* T: a proposition that states each formulae inTis provable from𝓢.
Equations
- LO.«term_⊢_» = Lean.ParserDescr.trailingNode `LO.«term_⊢_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢ ") (Lean.ParserDescr.cat `term 46))
 
Instances For
Equations
- LO.System.«term_⊢!_» = Lean.ParserDescr.trailingNode `LO.System.«term_⊢!_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢! ") (Lean.ParserDescr.cat `term 46))
 
Instances For
Equations
- LO.System.«term_⊬_» = Lean.ParserDescr.trailingNode `LO.System.«term_⊬_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊬ ") (Lean.ParserDescr.cat `term 46))
 
Instances For
Equations
- LO.System.«term_⊢*_» = Lean.ParserDescr.trailingNode `LO.System.«term_⊢*_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢* ") (Lean.ParserDescr.cat `term 46))
 
Instances For
Equations
- LO.System.«term_⊢!*_» = Lean.ParserDescr.trailingNode `LO.System.«term_⊢!*_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢!* ") (Lean.ParserDescr.cat `term 46))
 
Instances For
Equations
- LO.System.theory 𝓢 = {f : F | 𝓢 ⊢! f}
 
Instances For
Equations
- h.get = Classical.choice h
 
Instances For
Equations
- h.get = Classical.choice ⋯
 
Instances For
Equations
- (𝓢 ≤ₛ 𝓣) = (LO.System.theory 𝓢 ⊆ LO.System.theory 𝓣)
 
Instances For
Equations
- LO.System.«term_≤ₛ_» = Lean.ParserDescr.trailingNode `LO.System.«term_≤ₛ_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≤ₛ ") (Lean.ParserDescr.cat `term 41))
 
Instances For
Equations
- LO.System.«term_<ₛ_» = Lean.ParserDescr.trailingNode `LO.System.«term_<ₛ_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <ₛ ") (Lean.ParserDescr.cat `term 41))
 
Instances For
Equations
- (𝓢 =ₛ 𝓣) = (LO.System.theory 𝓢 = LO.System.theory 𝓣)
 
Instances For
Equations
- LO.System.«term_=ₛ_» = Lean.ParserDescr.trailingNode `LO.System.«term_=ₛ_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " =ₛ ") (Lean.ParserDescr.cat `term 41))
 
Instances For
Equations
- LO.System.equiv S = { r := fun (x1 x2 : S) => x1 =ₛ x2, iseqv := ⋯ }
 
Equations
Instances For
Equations
- LO.System.Logic.instLE = { le := Quotient.lift₂ (fun (x1 x2 : S) => x1 ≤ₛ x2) ⋯ }
 
Equations
Equations
- LO.System.Inconsistent 𝓢 = ∀ (f : F), 𝓢 ⊢! f
 
Instances For
- not_inconsistent : ¬Inconsistent 𝓢
 
Instances
Alias of the reverse direction of LO.System.not_inconsistent_iff_consistent.
Alias of the reverse direction of LO.System.not_consistent_iff_inconsistent.
Alias of the forward direction of LO.System.consistent_iff_exists_unprovable.
Alias of the forward direction of LO.System.inconsistent_iff_theory_eq_univ.
Equations
- Λ.Inconsistent = Quotient.lift LO.System.Inconsistent ⋯ Λ
 
Instances For
Equations
- Λ.Consistent = Quotient.lift LO.System.Consistent ⋯ Λ
 
Instances For
Equations
- LO.System.«term_↝_» = Lean.ParserDescr.trailingNode `LO.System.«term_↝_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↝ ") (Lean.ParserDescr.cat `term 41))
 
Instances For
Equations
- LO.System.«term_↭_» = Lean.ParserDescr.trailingNode `LO.System.«term_↭_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↭ ") (Lean.ParserDescr.cat `term 41))
 
Instances For
Equations
- LO.System.«term_↝¹_» = Lean.ParserDescr.trailingNode `LO.System.«term_↝¹_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↝¹ ") (Lean.ParserDescr.cat `term 41))
 
Instances For
Equations
- LO.System.Translation.instCoeFunForall 𝓢 𝓣 = { coe := LO.System.Translation.toFun }
 
Equations
- LO.System.Translation.id 𝓢 = { toFun := id, prf := fun {f : F} => id }
 
Instances For
Equations
- LO.System.Bitranslation.id 𝓢 = { r := LO.System.Translation.id 𝓢, l := LO.System.Translation.id 𝓢, r_l := ⋯, l_r := ⋯ }
 
Instances For
Equations
- φ.comp ψ = { r := φ.r.comp ψ.r, l := ψ.l.comp φ.l, r_l := ⋯, l_r := ⋯ }
 
Instances For
Equations
- LO.System.FaithfulTranslation.instCoeFunForall 𝓢 𝓣 = { coe := fun (t : 𝓢 ↝¹ 𝓣) => t.toFun }
 
Equations
- LO.System.«term_≼_» = Lean.ParserDescr.trailingNode `LO.System.«term_≼_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≼ ") (Lean.ParserDescr.cat `term 41))
 
Instances For
Equations
- LO.System.Subtheory.id = { prf := fun {f : F} => id }
 
Equations
- t'.comp t = { prf := fun {f : F} => LO.System.Subtheory.prf ∘ LO.System.Subtheory.prf }
 
Instances For
Equations
- LO.System.Subtheory.translation = { toFun := id, prf := fun {f : F} => LO.System.Subtheory.prf }
 
Instances For
Instances For
Instances For
- prfAxm {𝓢 : S} : 𝓢 ⊢* Collection.set 𝓢
 
Instances
Alias of LO.System.Axiomatized.prfAxm.
Instances For
Alias of LO.System.Axiomatized.weakening.
Instances For
Instances
Equations
- LO.System.Axiomatized.subtheoryOfSubset h = { prf := fun {f : F} => LO.System.Axiomatized.weakening h }
 
Instances For
Equations
- LO.System.Axiomatized.translation h = { toFun := id, prf := fun {f : F} => LO.System.Axiomatized.weakening h }
 
Instances For
Alias of LO.System.Axiomatized.provable_axm.
Alias of LO.System.Axiomatized.weakening!.
Equations
- LO.System.FiniteAxiomatizable 𝓢 = ∃ (𝓕 : S), Collection.Finite 𝓕 ∧ 𝓕 ≈ 𝓢
 
Instances For
Equations
- LO.System.StrongCut.translation B = { toFun := id, prf := fun {f : F} => LO.System.StrongCut.cut fun {f : F} => B }
 
Instances For
Equations
- LO.System.Subtheory.ofAxm B = { prf := fun {f : F} (b : 𝓢₁ ⊢ f) => LO.System.StrongCut.cut (fun {f : F} => B) b }
 
Instances For
Equations
- LO.System.Subtheory.ofAxm! B = { prf := fun {f : F} (b : 𝓢₁ ⊢ f) => LO.System.StrongCut.cut (fun {f : F} => B.get) b }
 
Instances For
Equations
- LO.System.Subtheory.ofSubset h = { prf := fun {f : F} => LO.System.wk h }
 
Instances For
Instances
Instances
Equations
- ⋯ = ⋯
 
Instances For
Alias of the reverse direction of LO.System.inconsistent_iff_provable_bot.
Alias of the forward direction of LO.System.consistent_iff_unprovable_bot.
Alias of LO.System.Deduction.ofInsert.
Instances For
Alias of LO.System.Deduction.of_insert!.
Equations
- LO.System.Deduction.translation φ 𝓢 = { toFun := fun (ψ : F) => φ ➝ ψ, prf := fun {f : F} => LO.System.deduction }