Basic Modal Logic for Lean #
@[reducible, inline]
abbrev Cslib.Logic.Modal.Model.unimodalOfPredicates {τ : PFunctor.{u_1, u_2}} [τ.Unary] {α : Type u_3} (r : α → α → Prop) :
Builds a unimodal predicate model from a binary relation.
Equations
Instances For
@[reducible, inline]
abbrev Cslib.Logic.Modal.Model.unimodalOfContainers {τ : PFunctor.{u_1, u_2}} [τ.Unary] {α : Type u_3} {β : Type u_4} [Membership α β] (r : α → α → Prop) :
Model α τ β
Builds a unimodal container model from a binary relation.
Equations
Instances For
theorem Cslib.Logic.Modal.Satisfies.unimodalOfPredicates_preserves_iff {τ : PFunctor.{u_3, u_2}} [τ.Unary] [Unique τ.A] {α : Type u_1} {P : α → Prop} (r : α → α → Prop) :
(∀ (a : α),
⇓{ m := Model.unimodalOfPredicates r, w := a,
φ := HasImp.imp (Proposition.atom P) (HasBox.box (Proposition.atom P)) }) ↔ Relation.Preserves r P
Under Model.unimodalOfPredicates r, P → □P is an axiom iff r preserves P.
theorem Cslib.Logic.Modal.Satisfies.unimodalOfPredicates_preserves_reflTransGen {τ : PFunctor.{u_3, u_2}} [τ.Unary] [Unique τ.A] {α : Type u_1} {r : α → α → Prop} {P : α → Prop} (h :
∀ (a : α),
⇓{ m := Model.unimodalOfPredicates r, w := a,
φ := HasImp.imp (Proposition.atom P) (HasBox.box (Proposition.atom P)) }) (a : α) :
⇓{ m := Model.unimodalOfPredicates (Relation.ReflTransGen r), w := a,
φ := HasImp.imp (Proposition.atom P) (HasBox.box (Proposition.atom P)) }
Invariants are preserved by the reflexive and transitive closure of the accessibility relation.