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 systemS
for formulaeF
.LO.System.Inconsistent 𝓢
: a proposition that states that all formulae inF
is 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φ : F
from 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 setT
from𝓢
.𝓢 ⊢!* T
: a proposition that states each formulae inT
is provable from𝓢
.
- Prf : S → F → Type u_3
Equations
- LO.«term_⊢_» = Lean.ParserDescr.trailingNode `LO.«term_⊢_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢ ") (Lean.ParserDescr.cat `term 46))
Equations
- LO.System.«term_⊢!_» = Lean.ParserDescr.trailingNode `LO.System.«term_⊢!_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢! ") (Lean.ParserDescr.cat `term 46))
Equations
- LO.System.«term_⊬_» = Lean.ParserDescr.trailingNode `LO.System.«term_⊬_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊬ ") (Lean.ParserDescr.cat `term 46))
Equations
- LO.System.«term_⊢*_» = Lean.ParserDescr.trailingNode `LO.System.«term_⊢*_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢* ") (Lean.ParserDescr.cat `term 46))
Equations
- LO.System.«term_⊢!*_» = Lean.ParserDescr.trailingNode `LO.System.«term_⊢!*_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊢!* ") (Lean.ParserDescr.cat `term 46))
Equations
- LO.System.theory 𝓢 = {f : F | 𝓢 ⊢! f}
Equations
- h.get = Classical.choice h
Equations
- h.get = Classical.choice ⋯
Equations
- (𝓢 ≤ₛ 𝓣) = (LO.System.theory 𝓢 ⊆ LO.System.theory 𝓣)
Equations
- LO.System.«term_≤ₛ_» = Lean.ParserDescr.trailingNode `LO.System.«term_≤ₛ_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≤ₛ ") (Lean.ParserDescr.cat `term 41))
Equations
- LO.System.«term_<ₛ_» = Lean.ParserDescr.trailingNode `LO.System.«term_<ₛ_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <ₛ ") (Lean.ParserDescr.cat `term 41))
Equations
- (𝓢 =ₛ 𝓣) = (LO.System.theory 𝓢 = LO.System.theory 𝓣)
Equations
- LO.System.«term_=ₛ_» = Lean.ParserDescr.trailingNode `LO.System.«term_=ₛ_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " =ₛ ") (Lean.ParserDescr.cat `term 41))
Equations
- LO.System.equiv S = { r := fun (x1 x2 : S) => x1 =ₛ x2, iseqv := ⋯ }
Equations
Equations
- LO.System.Logic.instLE = { le := Quotient.lift₂ (fun (x1 x2 : S) => x1 ≤ₛ x2) ⋯ }
Equations
Equations
- LO.System.Inconsistent 𝓢 = ∀ (f : F), 𝓢 ⊢! f
- not_inconsistent : ¬Inconsistent 𝓢
Instances
- LO.FirstOrder.Theory.CobhamR0.consistent
- LO.FirstOrder.Theory.Peano.consistent
- LO.IntProp.Hilbert.Cl.instConsistentNat
- LO.IntProp.Hilbert.Int.instConsistentNat
- LO.IntProp.Hilbert.KC.instConsistentNat
- LO.IntProp.Hilbert.LC.instConsistentNat
- LO.Modal.Hilbert.GL.consistent
- LO.Modal.Hilbert.GL.instConsistentFormulaNat
- LO.Modal.Hilbert.Grz.consistent
- LO.Modal.Hilbert.K.consistent
- LO.Modal.Hilbert.K4.consistent
- LO.Modal.Hilbert.K45.consistent
- LO.Modal.Hilbert.K5.consistent
- LO.Modal.Hilbert.KB.consistent
- LO.Modal.Hilbert.KB4.consistent
- LO.Modal.Hilbert.KB5.consistent
- LO.Modal.Hilbert.KD.consistent
- LO.Modal.Hilbert.KD4.consistent
- LO.Modal.Hilbert.KD45.consistent
- LO.Modal.Hilbert.KD5.consistent
- LO.Modal.Hilbert.KDB.consistent
- LO.Modal.Hilbert.KT.consistent
- LO.Modal.Hilbert.KT4B.consistent
- LO.Modal.Hilbert.KTB.consistent
- LO.Modal.Hilbert.S4.consistent
- LO.Modal.Hilbert.S4Dot3.consistent
- LO.Modal.Hilbert.S5.consistent
- LO.Modal.Hilbert.Ver.consistent
- LO.Modal.PLoN.instConsistentFormulaHilbertN
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 ⋯ Λ
Equations
- Λ.Consistent = Quotient.lift LO.System.Consistent ⋯ Λ
Equations
- LO.System.«term_↝_» = Lean.ParserDescr.trailingNode `LO.System.«term_↝_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↝ ") (Lean.ParserDescr.cat `term 41))
Equations
- LO.System.«term_↭_» = Lean.ParserDescr.trailingNode `LO.System.«term_↭_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↭ ") (Lean.ParserDescr.cat `term 41))
Equations
- LO.System.«term_↝¹_» = Lean.ParserDescr.trailingNode `LO.System.«term_↝¹_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↝¹ ") (Lean.ParserDescr.cat `term 41))
Equations
- LO.System.Translation.instCoeFunForall 𝓢 𝓣 = { coe := LO.System.Translation.toFun }
Equations
- LO.System.Translation.id 𝓢 = { toFun := id, prf := fun {f : F} => id }
Equations
- LO.System.Bitranslation.id 𝓢 = { r := LO.System.Translation.id 𝓢, l := LO.System.Translation.id 𝓢, r_l := ⋯, l_r := ⋯ }
Equations
- φ.comp ψ = { r := φ.r.comp ψ.r, l := ψ.l.comp φ.l, r_l := ⋯, l_r := ⋯ }
Equations
- LO.System.FaithfulTranslation.instCoeFunForall 𝓢 𝓣 = { coe := fun (t : 𝓢 ↝¹ 𝓣) => t.toFun }
Instances
- LO.FirstOrder.Arith.CobhamR0'.subtheoryOfCobhamR0
- LO.FirstOrder.Arith.CobhamR0.subTheoryPAMinus
- LO.FirstOrder.Arith.instSubtheorySyntacticFormulaORingTheoryCobhamR0_arithmetization
- LO.FirstOrder.Arith.trueArithWithStarUnbounded.eqTheory
- LO.FirstOrder.Theory.Alt.instSubtheorySentenceAltOfSyntacticFormula_incompleteness
- LO.FirstOrder.Theory.Alt.instSubtheorySyntacticFormulaThyAlt_incompleteness
- LO.FirstOrder.Theory.EQ'.subTheoryOfEQ
- LO.FirstOrder.Theory.EQ.subtheoryOfCobhamR0
- LO.FirstOrder.Theory.EQ.subtheoryOfIOpen
- LO.FirstOrder.Theory.EQ.subtheoryOfIndH
- LO.FirstOrder.Theory.EQ.subtheoryOfPAMinus
- LO.FirstOrder.Theory.PAMinus.subtheoryOfIndH
- LO.FirstOrder.Theory.instSubtheorySyntacticFormulaHAdd
- LO.FirstOrder.Theory.instSubtheorySyntacticFormulaHAdd_1
- LO.System.Subtheory.id
Equations
- LO.System.«term_≼_» = Lean.ParserDescr.trailingNode `LO.System.«term_≼_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≼ ") (Lean.ParserDescr.cat `term 41))
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 }
Equations
- LO.System.Subtheory.translation = { toFun := id, prf := fun {f : F} => LO.System.Subtheory.prf }
- prfAxm {𝓢 : S} : 𝓢 ⊢* Collection.set 𝓢
Alias of LO.System.Axiomatized.prfAxm
.
Alias of LO.System.Axiomatized.weakening
.
Equations
- LO.System.Axiomatized.subtheoryOfSubset h = { prf := fun {f : F} => LO.System.Axiomatized.weakening h }
Equations
- LO.System.Axiomatized.translation h = { toFun := id, prf := fun {f : F} => LO.System.Axiomatized.weakening h }
Alias of LO.System.Axiomatized.provable_axm
.
Alias of LO.System.Axiomatized.weakening!
.
Equations
- LO.System.FiniteAxiomatizable 𝓢 = ∃ (𝓕 : S), Collection.Finite 𝓕 ∧ 𝓕 ≈ 𝓢
Equations
- LO.System.StrongCut.translation B = { toFun := id, prf := fun {f : F} => LO.System.StrongCut.cut fun {f : F} => B }
Equations
- LO.System.Subtheory.ofAxm B = { prf := fun {f : F} (b : 𝓢₁ ⊢ f) => LO.System.StrongCut.cut (fun {f : F} => B) b }
Equations
- LO.System.Subtheory.ofAxm! B = { prf := fun {f : F} (b : 𝓢₁ ⊢ f) => LO.System.StrongCut.cut (fun {f : F} => B.get) b }
Equations
- LO.System.Subtheory.ofSubset h = { prf := fun {f : F} => LO.System.wk h }
Equations
- ⋯ = ⋯
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
.
Alias of LO.System.Deduction.of_insert!
.
Equations
- LO.System.Deduction.translation φ 𝓢 = { toFun := fun (ψ : F) => φ ➝ ψ, prf := fun {f : F} => LO.System.deduction }
Instances
- LO.FirstOrder.instSoundTheorySyntacticFormulaSetStrucModels
- LO.IntProp.HeytingSemantics.instSoundHilbertFormulaLindenbaum
- LO.IntProp.HeytingSemantics.instSoundHilbertFormulaSetMod
- LO.IntProp.Hilbert.Cl.Kripke.sound
- LO.IntProp.Hilbert.Int.Kripke.sound
- LO.IntProp.Hilbert.KC.Kripke.sound
- LO.IntProp.Hilbert.Kripke.instSound
- LO.IntProp.Hilbert.LC.Kripke.sound
- LO.Modal.Hilbert.GL.Kripke.finite_sound
- LO.Modal.Hilbert.GL.Kripke.sound
- LO.Modal.Hilbert.Grz.Kripke.finite_sound
- LO.Modal.Hilbert.Grz.Kripke.sound
- LO.Modal.Hilbert.K.Kripke.sound
- LO.Modal.Hilbert.K4.Kripke.sound
- LO.Modal.Hilbert.K45.Kripke.sound
- LO.Modal.Hilbert.K5.Kripke.sound
- LO.Modal.Hilbert.KB.Kripke.sound
- LO.Modal.Hilbert.KB4.Kripke.sound
- LO.Modal.Hilbert.KB5.Kripke.sound
- LO.Modal.Hilbert.KD.Kripke.sound
- LO.Modal.Hilbert.KD4.Kripke.sound
- LO.Modal.Hilbert.KD45.Kripke.sound
- LO.Modal.Hilbert.KD5.Kripke.sound
- LO.Modal.Hilbert.KDB.Kripke.sound
- LO.Modal.Hilbert.KT.Kripke.sound
- LO.Modal.Hilbert.KT4B.Kripke.sound
- LO.Modal.Hilbert.KTB.Kripke.sound
- LO.Modal.Hilbert.S4.Kripke.sound
- LO.Modal.Hilbert.S4Dot3.Kripke.sound
- LO.Modal.Hilbert.S5.Kripke.sound
- LO.Modal.Hilbert.Ver.Kripke.sound
- LO.Modal.PLoN.instSoundHilbertFormulaFrameClassNAllFrameClass
- LO.Propositional.Classical.instSoundTheoryFormulaSetValuationModels
Instances
- LO.FirstOrder.instCompleteTheorySyntacticFormulaSetSmallStrucModels
- LO.FirstOrder.instCompleteTheorySyntacticFormulaSetSmallStrucModels_1
- LO.FirstOrder.instCompleteTheorySyntacticFormulaSetStrucModels
- LO.IntProp.HeytingSemantics.instCompleteHilbertFormulaLindenbaum
- LO.IntProp.HeytingSemantics.instCompleteHilbertFormulaSetModOfDecidableEqOfIncludeEFQ
- LO.IntProp.Hilbert.Int.Kripke.complete
- LO.IntProp.Hilbert.KC.Kripke.complete
- LO.IntProp.Hilbert.Kripke.instCompleteOfCanonical
- LO.IntProp.Hilbert.LC.Kripke.complete
- LO.Modal.Hilbert.GL.Kripke.complete
- LO.Modal.Hilbert.Grz.Kripke.complete
- LO.Modal.Hilbert.K.Kripke.complete
- LO.Modal.Hilbert.K.Kripke.finite_complete
- LO.Modal.Hilbert.K4.Kripke.complete
- LO.Modal.Hilbert.K45.Kripke.complete
- LO.Modal.Hilbert.K5.Kripke.complete
- LO.Modal.Hilbert.KB.Kripke.complete
- LO.Modal.Hilbert.KB4.Kripke.complete
- LO.Modal.Hilbert.KB5.Kripke.complete
- LO.Modal.Hilbert.KD4.Kripke.complete
- LO.Modal.Hilbert.KD45.Kripke.complete
- LO.Modal.Hilbert.KD5.Kripke.complete
- LO.Modal.Hilbert.KDB.Kripke.complete
- LO.Modal.Hilbert.KT.Kripke.complete
- LO.Modal.Hilbert.KT4B.Kripke.complete
- LO.Modal.Hilbert.KT4B.Kripke.finite_complete
- LO.Modal.Hilbert.KTB.Kripke.complete
- LO.Modal.Hilbert.KTB.Kripke.finite_complete
- LO.Modal.Hilbert.S4.Kripke.complete
- LO.Modal.Hilbert.S4.Kripke.finite_complete
- LO.Modal.Hilbert.S4Dot3.complete
- LO.Modal.Hilbert.S5.Kripke.complete
- LO.Modal.Hilbert.S5.Kripke.complete_universal
- LO.Modal.Hilbert.Ver.Kripke.complete
- LO.Modal.PLoN.instCompleteHilbertFormulaFrameClassNAllFrameClass
- LO.Propositional.Classical.instCompleteTheoryFormulaSetValuationModels