- World : Type
- Rel : Rel self.World self.World
- world_nonempty : Nonempty self.World
- rel_po : IsPartialOrder self.World self.Rel
Instances For
instance
LO.IntProp.Kripke.instCoeFunFrameForallWorldForallProp :
CoeFun LO.IntProp.Kripke.Frame fun (F : LO.IntProp.Kripke.Frame) => F.World → F.World → Prop
Equations
Equations
- ⋯ = ⋯
instance
LO.IntProp.Kripke.instIsPartialOrderWorldRel
{F : LO.IntProp.Kripke.Frame}
:
IsPartialOrder F.World F.Rel
Equations
- ⋯ = ⋯
@[reducible, inline]
Instances For
Equations
- LO.IntProp.Kripke.«term_≺_» = Lean.ParserDescr.trailingNode `LO.IntProp.Kripke.«term_≺_» 45 46 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≺ ") (Lean.ParserDescr.cat `term 46))
Instances For
@[simp]
@[simp]
@[reducible, inline]
Equations
- LO.IntProp.Kripke.pointFrame = LO.IntProp.Kripke.Frame.mk Unit fun (x x : Unit) => True
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
Instances For
instance
LO.IntProp.Kripke.instCoeFunValuationForallWorldForallNatProp
{F : LO.IntProp.Kripke.Frame}
:
CoeFun (LO.IntProp.Kripke.Valuation F) fun (x : LO.IntProp.Kripke.Valuation F) => F.World → ℕ → Prop
Equations
- LO.IntProp.Kripke.instCoeFunValuationForallWorldForallNatProp = { coe := LO.IntProp.Kripke.Valuation.Val }
- world_nonempty : Nonempty self.World
- rel_po : IsPartialOrder self.World self.Rel
- Val : LO.IntProp.Kripke.Valuation self.toFrame
Instances For
instance
LO.IntProp.Kripke.instCoeFunModelForallWorldForallNatProp :
CoeFun LO.IntProp.Kripke.Model fun (M : LO.IntProp.Kripke.Model) => M.World → ℕ → Prop
Equations
- LO.IntProp.Kripke.instCoeFunModelForallWorldForallNatProp = { coe := fun (m : LO.IntProp.Kripke.Model) => m.Val.Val }
Equations
- LO.IntProp.Formula.Kripke.Satisfies M w (LO.IntProp.Formula.atom a) = M.Val.Val w a
- LO.IntProp.Formula.Kripke.Satisfies M w LO.IntProp.Formula.verum = True
- LO.IntProp.Formula.Kripke.Satisfies M w LO.IntProp.Formula.falsum = False
- LO.IntProp.Formula.Kripke.Satisfies M w (φ.and ψ) = (LO.IntProp.Formula.Kripke.Satisfies M w φ ∧ LO.IntProp.Formula.Kripke.Satisfies M w ψ)
- LO.IntProp.Formula.Kripke.Satisfies M w (φ.or ψ) = (LO.IntProp.Formula.Kripke.Satisfies M w φ ∨ LO.IntProp.Formula.Kripke.Satisfies M w ψ)
- LO.IntProp.Formula.Kripke.Satisfies M w φ.neg = ∀ {w' : M.World}, w ≺ w' → ¬LO.IntProp.Formula.Kripke.Satisfies M w' φ
- LO.IntProp.Formula.Kripke.Satisfies M w (φ.imp ψ) = ∀ {w' : M.World}, w ≺ w' → LO.IntProp.Formula.Kripke.Satisfies M w' φ → LO.IntProp.Formula.Kripke.Satisfies M w' ψ
Instances For
instance
LO.IntProp.Formula.Kripke.Satisfies.semantics
(M : LO.IntProp.Kripke.Model)
:
LO.Semantics (LO.IntProp.Formula ℕ) M.World
Equations
- LO.IntProp.Formula.Kripke.Satisfies.semantics M = { Realize := fun (w : M.World) => LO.IntProp.Formula.Kripke.Satisfies M w }
@[simp]
theorem
LO.IntProp.Formula.Kripke.Satisfies.iff_models
{M : LO.IntProp.Kripke.Model}
{w : M.World}
{φ : LO.IntProp.Formula ℕ}
:
w ⊧ φ ↔ LO.IntProp.Formula.Kripke.Satisfies M w φ
@[simp]
theorem
LO.IntProp.Formula.Kripke.Satisfies.atom_def
{M : LO.IntProp.Kripke.Model}
{w : M.World}
{a : ℕ}
:
w ⊧ LO.IntProp.Formula.atom a ↔ M.Val.Val w a
@[simp]
@[simp]
@[simp]
theorem
LO.IntProp.Formula.Kripke.Satisfies.and_def
{M : LO.IntProp.Kripke.Model}
{w : M.World}
{φ ψ : LO.IntProp.Formula ℕ}
:
@[simp]
theorem
LO.IntProp.Formula.Kripke.Satisfies.or_def
{M : LO.IntProp.Kripke.Model}
{w : M.World}
{φ ψ : LO.IntProp.Formula ℕ}
:
@[simp]
theorem
LO.IntProp.Formula.Kripke.Satisfies.imp_def
{M : LO.IntProp.Kripke.Model}
{w : M.World}
{φ ψ : LO.IntProp.Formula ℕ}
:
@[simp]
theorem
LO.IntProp.Formula.Kripke.Satisfies.neg_def
{M : LO.IntProp.Kripke.Model}
{w : M.World}
{φ : LO.IntProp.Formula ℕ}
:
instance
LO.IntProp.Formula.Kripke.Satisfies.instTopWorldNat
{M : LO.IntProp.Kripke.Model}
:
LO.Semantics.Top M.World
Equations
- ⋯ = ⋯
instance
LO.IntProp.Formula.Kripke.Satisfies.instBotWorldNat
{M : LO.IntProp.Kripke.Model}
:
LO.Semantics.Bot M.World
Equations
- ⋯ = ⋯
instance
LO.IntProp.Formula.Kripke.Satisfies.instAndWorldNat
{M : LO.IntProp.Kripke.Model}
:
LO.Semantics.And M.World
Equations
- ⋯ = ⋯
instance
LO.IntProp.Formula.Kripke.Satisfies.instOrWorldNat
{M : LO.IntProp.Kripke.Model}
:
LO.Semantics.Or M.World
Equations
- ⋯ = ⋯
theorem
LO.IntProp.Formula.Kripke.Satisfies.formula_hereditary
{M : LO.IntProp.Kripke.Model}
{w w' : M.World}
{φ : LO.IntProp.Formula ℕ}
(hw : w ≺ w')
:
theorem
LO.IntProp.Formula.Kripke.Satisfies.neg_equiv
{M : LO.IntProp.Kripke.Model}
{w : M.World}
{φ : LO.IntProp.Formula ℕ}
:
def
LO.IntProp.Formula.Kripke.ValidOnModel
(M : LO.IntProp.Kripke.Model)
(φ : LO.IntProp.Formula ℕ)
:
Equations
- LO.IntProp.Formula.Kripke.ValidOnModel M φ = ∀ (w : M.World), w ⊧ φ
Instances For
Equations
- LO.IntProp.Formula.Kripke.ValidOnModel.semantics = { Realize := fun (M : LO.IntProp.Kripke.Model) => LO.IntProp.Formula.Kripke.ValidOnModel M }
@[simp]
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.iff_models
{M : LO.IntProp.Kripke.Model}
{φ : LO.IntProp.Formula ℕ}
:
M ⊧ φ ↔ LO.IntProp.Formula.Kripke.ValidOnModel M φ
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.andElim₁
{M : LO.IntProp.Kripke.Model}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.andElim₂
{M : LO.IntProp.Kripke.Model}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.andInst₃
{M : LO.IntProp.Kripke.Model}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.orInst₁
{M : LO.IntProp.Kripke.Model}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.orInst₂
{M : LO.IntProp.Kripke.Model}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.orElim
{M : LO.IntProp.Kripke.Model}
{φ ψ χ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.imply₁
{M : LO.IntProp.Kripke.Model}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.imply₂
{M : LO.IntProp.Kripke.Model}
{φ ψ χ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.mdp
{M : LO.IntProp.Kripke.Model}
{φ ψ : LO.IntProp.Formula ℕ}
(hpq : M ⊧ φ ➝ ψ)
(hp : M ⊧ φ)
:
M ⊧ ψ
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.efq
{M : LO.IntProp.Kripke.Model}
{φ : LO.IntProp.Formula ℕ}
:
M ⊧ LO.Axioms.EFQ φ
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.neg_equiv
{M : LO.IntProp.Kripke.Model}
{φ : LO.IntProp.Formula ℕ}
:
M ⊧ LO.Axioms.NegEquiv φ
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.lem
{M : LO.IntProp.Kripke.Model}
{φ : LO.IntProp.Formula ℕ}
:
Symmetric M.Rel → M ⊧ LO.Axioms.LEM φ
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.dum
{M : LO.IntProp.Kripke.Model}
{φ ψ : LO.IntProp.Formula ℕ}
:
Connected M.Rel → M ⊧ LO.Axioms.Dummett φ ψ
theorem
LO.IntProp.Formula.Kripke.ValidOnModel.wlem
{M : LO.IntProp.Kripke.Model}
{φ : LO.IntProp.Formula ℕ}
:
Confluent M.Rel → M ⊧ LO.Axioms.WeakLEM φ
def
LO.IntProp.Formula.Kripke.ValidOnFrame
(F : LO.IntProp.Kripke.Frame)
(φ : LO.IntProp.Formula ℕ)
:
Equations
- LO.IntProp.Formula.Kripke.ValidOnFrame F φ = ∀ {V : LO.IntProp.Kripke.Valuation F}, { toFrame := F, Val := V } ⊧ φ
Instances For
Equations
- LO.IntProp.Formula.Kripke.ValidOnFrame.semantics = { Realize := fun (F : LO.IntProp.Kripke.Frame) => LO.IntProp.Formula.Kripke.ValidOnFrame F }
@[simp]
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.models_iff
{F : LO.IntProp.Kripke.Frame}
{φ : LO.IntProp.Formula ℕ}
:
F ⊧ φ ↔ LO.IntProp.Formula.Kripke.ValidOnFrame F φ
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.andElim₁
{F : LO.IntProp.Kripke.Frame}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.andElim₂
{F : LO.IntProp.Kripke.Frame}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.andInst₃
{F : LO.IntProp.Kripke.Frame}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.orInst₁
{F : LO.IntProp.Kripke.Frame}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.orInst₂
{F : LO.IntProp.Kripke.Frame}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.orElim
{F : LO.IntProp.Kripke.Frame}
{φ ψ χ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.imply₁
{F : LO.IntProp.Kripke.Frame}
{φ ψ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.imply₂
{F : LO.IntProp.Kripke.Frame}
{φ ψ χ : LO.IntProp.Formula ℕ}
:
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.mdp
{F : LO.IntProp.Kripke.Frame}
{φ ψ : LO.IntProp.Formula ℕ}
(hpq : F ⊧ φ ➝ ψ)
(hp : F ⊧ φ)
:
F ⊧ ψ
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.efq
{F : LO.IntProp.Kripke.Frame}
{φ : LO.IntProp.Formula ℕ}
:
F ⊧ LO.Axioms.EFQ φ
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.neg_equiv
{F : LO.IntProp.Kripke.Frame}
{φ : LO.IntProp.Formula ℕ}
:
F ⊧ LO.Axioms.NegEquiv φ
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.lem
{F : LO.IntProp.Kripke.Frame}
{φ : LO.IntProp.Formula ℕ}
(F_symm : Symmetric F.Rel)
:
F ⊧ LO.Axioms.LEM φ
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.dum
{F : LO.IntProp.Kripke.Frame}
{φ ψ : LO.IntProp.Formula ℕ}
(F_conn : Connected F.Rel)
:
F ⊧ LO.Axioms.Dummett φ ψ
theorem
LO.IntProp.Formula.Kripke.ValidOnFrame.wlem
{F : LO.IntProp.Kripke.Frame}
{φ : LO.IntProp.Formula ℕ}
(F_conf : Confluent F.Rel)
:
F ⊧ LO.Axioms.WeakLEM φ
def
LO.IntProp.Formula.Kripke.ValidOnFrameClass
(C : LO.IntProp.Kripke.FrameClass)
(φ : LO.IntProp.Formula ℕ)
:
Equations
- LO.IntProp.Formula.Kripke.ValidOnFrameClass C φ = ∀ F ∈ C, F ⊧ φ
Instances For
Equations
- LO.IntProp.Formula.Kripke.ValidOnFrameClass.semantics = { Realize := fun (C : LO.IntProp.Kripke.FrameClass) => LO.IntProp.Formula.Kripke.ValidOnFrameClass C }
@[simp]
theorem
LO.IntProp.Formula.Kripke.ValidOnFrameClass.bot
{C : LO.IntProp.Kripke.FrameClass}
(h_nonempty : Set.Nonempty C)
:
A set of formula that valid on frame F
.
Equations
- F.theorems = {φ : LO.IntProp.Formula ℕ | F ⊧ φ}
Instances For
def
LO.IntProp.Kripke.FrameClass.DefinedBy
(C : LO.IntProp.Kripke.FrameClass)
(T : Set (LO.IntProp.Formula ℕ))
:
Equations
- C.DefinedBy T = ∀ (F : LO.IntProp.Kripke.Frame), F ∈ C ↔ F ⊧* T
Instances For
theorem
LO.IntProp.Hilbert.Kripke.sound_hilbert_of_frameclass
{φ : LO.IntProp.Formula ℕ}
{C : LO.IntProp.Kripke.FrameClass}
{T : Set (LO.IntProp.Formula ℕ)}
(definedBy : C.DefinedBy T)
:
theorem
LO.IntProp.Hilbert.Kripke.sound_of_equiv_frameclass_hilbert
{H : LO.IntProp.Hilbert ℕ}
{φ : LO.IntProp.Formula ℕ}
{C : LO.IntProp.Kripke.FrameClass}
{T : Set (LO.IntProp.Formula ℕ)}
(definedBy : C.DefinedBy T)
(heq : { axioms := 𝗘𝗙𝗤 ∪ T } =ₛ H)
:
instance
LO.IntProp.Hilbert.Kripke.instSound
{H : LO.IntProp.Hilbert ℕ}
{C : LO.IntProp.Kripke.FrameClass}
{T : Set (LO.IntProp.Formula ℕ)}
(definedBy : C.DefinedBy T)
(heq : { axioms := 𝗘𝗙𝗤 ∪ T } =ₛ H)
:
LO.Sound H C
Equations
- ⋯ = ⋯
theorem
LO.IntProp.Hilbert.Kripke.unprovable_bot
{H : LO.IntProp.Hilbert ℕ}
{C : LO.IntProp.Kripke.FrameClass}
[sound : LO.Sound H C]
(hNonempty : Set.Nonempty C)
:
theorem
LO.IntProp.Hilbert.Kripke.consistent
{H : LO.IntProp.Hilbert ℕ}
{C : LO.IntProp.Kripke.FrameClass}
[LO.Sound H C]
(h_nonempty : Set.Nonempty C)
:
H.Consistent