structure
LO.Kripke.Model.Bisimulation
{α : Type u_1}
(M₁ : LO.Kripke.Model α)
(M₂ : LO.Kripke.Model α)
:
Type (max u_2 u_3)
- toRel : Rel M₁.World M₂.World
- atomic : ∀ {x₁ : M₁.World} {x₂ : M₂.World} {a : α}, self.toRel x₁ x₂ → (M₁.Valuation x₁ a ↔ M₂.Valuation x₂ a)
Instances For
theorem
LO.Kripke.Model.Bisimulation.atomic
{α : Type u_1}
{M₁ : LO.Kripke.Model α}
{M₂ : LO.Kripke.Model α}
(self : M₁ ⇄ M₂)
{x₁ : M₁.World}
{x₂ : M₂.World}
{a : α}
:
self.toRel x₁ x₂ → (M₁.Valuation x₁ a ↔ M₂.Valuation x₂ a)
theorem
LO.Kripke.Model.Bisimulation.forth
{α : Type u_1}
{M₁ : LO.Kripke.Model α}
{M₂ : LO.Kripke.Model α}
(self : M₁ ⇄ M₂)
{x₁ : M₁.World}
{y₁ : M₁.World}
{x₂ : M₂.World}
:
theorem
LO.Kripke.Model.Bisimulation.back
{α : Type u_1}
{M₁ : LO.Kripke.Model α}
{M₂ : LO.Kripke.Model α}
(self : M₁ ⇄ M₂)
{x₁ : M₁.World}
{x₂ : M₂.World}
{y₂ : M₂.World}
:
Equations
- LO.Kripke.«term_⇄_» = Lean.ParserDescr.trailingNode `LO.Kripke.term_⇄_ 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⇄ ") (Lean.ParserDescr.cat `term 81))
Instances For
instance
LO.Kripke.instCoeFunBisimulationForallWorldForallProp :
{α : Type u_1} →
{M₁ : LO.Kripke.Model α} → {M₂ : LO.Kripke.Model α} → CoeFun (M₁ ⇄ M₂) fun (x : M₁ ⇄ M₂) => M₁.World → M₂.World → Prop
structure
LO.Kripke.Frame.PseudoEpimorphism
(F₁ : LO.Kripke.Frame)
(F₂ : LO.Kripke.Frame)
:
Type (max u_1 u_2)
- toFun : F₁.World → F₂.World
Instances For
theorem
LO.Kripke.Frame.PseudoEpimorphism.forth
{F₁ : LO.Kripke.Frame}
{F₂ : LO.Kripke.Frame}
(self : F₁ →ₚ F₂)
{x : F₁.World}
{y : F₁.World}
:
theorem
LO.Kripke.Frame.PseudoEpimorphism.back
{F₁ : LO.Kripke.Frame}
{F₂ : LO.Kripke.Frame}
(self : F₁ →ₚ F₂)
{w : F₁.World}
{v : F₂.World}
:
Equations
- LO.Kripke.«term_→ₚ_» = Lean.ParserDescr.trailingNode `LO.Kripke.term_→ₚ_ 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " →ₚ ") (Lean.ParserDescr.cat `term 81))
Instances For
instance
LO.Kripke.instCoeFunPseudoEpimorphismForallWorld
{F₁ : LO.Kripke.Frame}
{F₂ : LO.Kripke.Frame}
:
Equations
- LO.Kripke.Frame.PseudoEpimorphism.id = { toFun := id, forth := ⋯, back := ⋯ }
Instances For
def
LO.Kripke.Frame.PseudoEpimorphism.TransitiveClosure
{F₁ : LO.Kripke.Frame}
{F₂ : LO.Kripke.Frame}
(f : F₁ →ₚ F₂)
(F₂_trans : Transitive F₂.Rel)
:
Equations
- f.TransitiveClosure F₂_trans = { toFun := f.toFun, forth := ⋯, back := ⋯ }
Instances For
def
LO.Kripke.Frame.PseudoEpimorphism.comp
{F₁ : LO.Kripke.Frame}
{F₂ : LO.Kripke.Frame}
{F₃ : LO.Kripke.Frame}
(f : F₁ →ₚ F₂)
(g : F₂ →ₚ F₃)
:
F₁ →ₚ F₃
Instances For
structure
LO.Kripke.Model.PseudoEpimorphism
{α : Type u_1}
(M₁ : LO.Kripke.Model α)
(M₂ : LO.Kripke.Model α)
extends
LO.Kripke.Frame.PseudoEpimorphism
:
Type (max u_2 u_3)
- toFun : M₁.Frame.World → M₂.Frame.World
- atomic : ∀ {w : M₁.World} {a : α}, M₁.Valuation w a ↔ M₂.Valuation (self.toFun w) a
Instances For
theorem
LO.Kripke.Model.PseudoEpimorphism.atomic
{α : Type u_1}
{M₁ : LO.Kripke.Model α}
{M₂ : LO.Kripke.Model α}
(self : M₁ →ₚ M₂)
{w : M₁.World}
{a : α}
:
M₁.Valuation w a ↔ M₂.Valuation (self.toFun w) a
Equations
- LO.Kripke.«term_→ₚ__1» = Lean.ParserDescr.trailingNode `LO.Kripke.term_→ₚ__1 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " →ₚ ") (Lean.ParserDescr.cat `term 81))
Instances For
instance
LO.Kripke.instCoeFunPseudoEpimorphismForallWorld_1 :
{α : Type u_1} →
{M₁ : LO.Kripke.Model α} → {M₂ : LO.Kripke.Model α} → CoeFun (M₁ →ₚ M₂) fun (x : M₁ →ₚ M₂) => M₁.World → M₂.World
def
LO.Kripke.Model.PseudoEpimorphism.toFramePseudoEpimorphism
{α : Type u_1}
{M₁ : LO.Kripke.Model α}
{M₂ : LO.Kripke.Model α}
(f : M₁ →ₚ M₂)
:
M₁.Frame →ₚ M₂.Frame
Equations
- f.toFramePseudoEpimorphism = { toFun := f.toFun, forth := ⋯, back := ⋯ }
Instances For
Equations
- LO.Kripke.Model.PseudoEpimorphism.id = { toFun := id, forth := ⋯, back := ⋯, atomic := ⋯ }
Instances For
def
LO.Kripke.Model.PseudoEpimorphism.mkAtomic
{α : Type u_1}
{M₁ : LO.Kripke.Model α}
{M₂ : LO.Kripke.Model α}
(f : M₁.Frame →ₚ M₂.Frame)
(atomic : ∀ {w : M₁.Frame.World} {a : α}, M₁.Valuation w a ↔ M₂.Valuation (f.toFun w) a)
:
M₁ →ₚ M₂
Equations
- LO.Kripke.Model.PseudoEpimorphism.mkAtomic f atomic = { toFun := f.toFun, forth := ⋯, back := ⋯, atomic := ⋯ }
Instances For
def
LO.Kripke.Model.PseudoEpimorphism.comp
{α : Type u_1}
{M₁ : LO.Kripke.Model α}
{M₂ : LO.Kripke.Model α}
{M₃ : LO.Kripke.Model α}
(f : M₁ →ₚ M₂)
(g : M₂ →ₚ M₃)
:
M₁ →ₚ M₃
Equations
- f.comp g = LO.Kripke.Model.PseudoEpimorphism.mkAtomic (f.toFramePseudoEpimorphism.comp g.toFramePseudoEpimorphism) ⋯
Instances For
def
LO.Kripke.Model.PseudoEpimorphism.bisimulation
{α : Type u_1}
{M₁ : LO.Kripke.Model α}
{M₂ : LO.Kripke.Model α}
(f : M₁ →ₚ M₂)
:
M₁ ⇄ M₂
Equations
- f.bisimulation = { toRel := Function.graph f.toFun, atomic := ⋯, forth := ⋯, back := ⋯ }
Instances For
Instances For
Equations
Instances For
theorem
LO.Kripke.Frame.PointGenerated.rel_transitive
{F : LO.Kripke.Frame}
{r : F.World}
(F_trans : Transitive F.Rel)
:
Transitive (F.PointGenerated r).Rel
theorem
LO.Kripke.Frame.PointGenerated.rel_irreflexive
{F : LO.Kripke.Frame}
{r : F.World}
(F_irrefl : Irreflexive F.Rel)
:
Irreflexive (F.PointGenerated r).Rel
theorem
LO.Kripke.Frame.PointGenerated.rel_universal
{F : LO.Kripke.Frame}
{r : F.World}
(F_refl : Reflexive F.Rel)
(F_eucl : Euclidean F.Rel)
:
Universal (F.PointGenerated r).Rel
theorem
LO.Kripke.Frame.PointGenerated.rooted
{F : LO.Kripke.Frame}
{r : F.World}
:
(F.PointGenerated r).isRooted ⟨r, ⋯⟩
instance
LO.Kripke.Frame.PointGenerated.instFiniteWorld
{F : LO.Kripke.Frame}
{r : F.World}
[Finite F.World]
:
Finite (F.PointGenerated r).World
Equations
- ⋯ = ⋯
instance
LO.Kripke.Frame.PointGenerated.instDecidableEqWorld
{F : LO.Kripke.Frame}
{r : F.World}
[DecidableEq F.World]
:
DecidableEq (F.PointGenerated r).World
Equations
- LO.Kripke.Frame.PointGenerated.instDecidableEqWorld = Subtype.instDecidableEq
@[reducible, inline]
Equations
- F↾r = { toFrame := LO.Kripke.Frame.mk (F.PointGenerated r).World (F.PointGenerated r).Rel, root := ⟨r, ⋯⟩, root_rooted := ⋯, default := ⟨r, ⋯⟩ }
Instances For
Equations
- LO.Kripke.«term_↾_» = Lean.ParserDescr.trailingNode `LO.Kripke.term_↾_ 100 101 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "↾") (Lean.ParserDescr.cat `term 101))
Instances For
theorem
LO.Kripke.Frame.PointGenerated'.rel_transitive
{F : LO.Kripke.Frame}
{r : F.World}
:
Transitive F.Rel → Transitive (F↾r).Rel
theorem
LO.Kripke.Frame.PointGenerated'.rel_irreflexive
{F : LO.Kripke.Frame}
{r : F.World}
:
Irreflexive F.Rel → Irreflexive (F↾r).Rel
Equations
Instances For
Equations
- LO.Kripke.«term_↾__1» = Lean.ParserDescr.trailingNode `LO.Kripke.term_↾__1 100 101 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "↾") (Lean.ParserDescr.cat `term 101))
Instances For
def
LO.Kripke.Model.PointGenerated.bisimulation
{α : Type u_1}
(M : LO.Kripke.Model α)
(M_trans : Transitive M.Frame.Rel)
(r : M.World)
:
Equations
- LO.Kripke.Model.PointGenerated.bisimulation M M_trans r = { toRel := fun (x : (M↾r).World) (y : M.World) => ↑x = y, atomic := ⋯, forth := ⋯, back := ⋯ }
Instances For
theorem
LO.Kripke.Model.PointGenerated.bisimulation.rooted :
∀ {α : Type u_1} {M : LO.Kripke.Model α} {r : M.World} (M_trans : autoParam (Transitive M.Frame.Rel) _auto✝),
(LO.Kripke.Model.PointGenerated.bisimulation M M_trans r).toRel ⟨r, ⋯⟩ r
structure
LO.Kripke.Frame.GeneratedSub
(F₁ : LO.Kripke.Frame)
(F₂ : LO.Kripke.Frame)
extends
LO.Kripke.Frame.PseudoEpimorphism
:
Type (max u_1 u_2)
- toFun : F₁.World → F₂.World
- monic : Function.Injective self.toFun
Instances For
theorem
LO.Kripke.Frame.GeneratedSub.monic
{F₁ : LO.Kripke.Frame}
{F₂ : LO.Kripke.Frame}
(self : F₁ ⊆ₚ F₂)
:
Function.Injective self.toFun
Equations
- LO.Kripke.«term_⊆ₚ_» = Lean.ParserDescr.trailingNode `LO.Kripke.term_⊆ₚ_ 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊆ₚ ") (Lean.ParserDescr.cat `term 81))
Instances For
Equations
- LO.Kripke.Frame.successors x = {w : F.World | x ≺^* w}
Instances For
Equations
- LO.Kripke.Frame.«term_↑*» = Lean.ParserDescr.trailingNode `LO.Kripke.Frame.term_↑* 100 100 (Lean.ParserDescr.symbol "↑*")
Instances For
Equations
- LO.Kripke.Frame.immediate_successors x = {w : F.World | x ≺ w}
Instances For
Equations
- LO.Kripke.Frame.«term_↑¹» = Lean.ParserDescr.trailingNode `LO.Kripke.Frame.term_↑¹ 100 100 (Lean.ParserDescr.symbol "↑¹")
Instances For
Equations
- LO.Kripke.Frame.proper_immediate_successors x = {w : F.World | x ≠ w ∧ x ≺ w}
Instances For
Equations
- LO.Kripke.Frame.«term_↑» = Lean.ParserDescr.trailingNode `LO.Kripke.Frame.term_↑ 100 100 (Lean.ParserDescr.symbol "↑")
Instances For
Equations
- LO.Kripke.Frame.predeccsors x = {w : F.World | w ≺^* x}
Instances For
Equations
- LO.Kripke.Frame.«term_↓*» = Lean.ParserDescr.trailingNode `LO.Kripke.Frame.term_↓* 100 100 (Lean.ParserDescr.symbol "↓*")
Instances For
Equations
- LO.Kripke.Frame.immediate_predeccsors x = {w : F.World | w ≺ x}
Instances For
Equations
- LO.Kripke.Frame.«term_↓¹» = Lean.ParserDescr.trailingNode `LO.Kripke.Frame.term_↓¹ 100 100 (Lean.ParserDescr.symbol "↓¹")
Instances For
Instances For
Equations
- LO.Kripke.Frame.«term_↓» = Lean.ParserDescr.trailingNode `LO.Kripke.Frame.term_↓ 100 100 (Lean.ParserDescr.symbol "↓")