Documentation

Linglib.Logic.Orthologic.EpistemicFrame

The epistemic frame of a Boolean algebra #

This file defines Holliday and Mandelkern's lifting of a possible-worlds model to a possibility model for epistemic modals. The possibilities of the epistemic frame of a Boolean algebra B are the pairs (a, i) with ⊥ ≠ a ≤ i, where a records how things are and might be and i what must be the case. Two possibilities are compatible when their first components overlap and each lies within the other's second component, and (a, i) accesses (a', i') when a ≤ a' and i' ≤ i. Access is reflexive, R-regular and knowable, so the regular propositions form an epistemic ortholattice, and B embeds into it.

Main definitions #

Main results #

References #

@[reducible, inline]
abbrev Orthologic.Possibility (B : Type u_2) [BooleanAlgebra B] :
Type u_2

A possibility of the epistemic frame of B is a pair (a, i) with ⊥ ≠ a ≤ i ([HM24] Definition 5.1).

Equations
Instances For
    @[reducible, inline]
    abbrev Orthologic.Possibility.truth {B : Type u_1} [BooleanAlgebra B] (x : Possibility B) :
    B

    The first component of (a, i) records how things are and might be.

    Equations
    Instances For
      @[reducible, inline]
      abbrev Orthologic.Possibility.info {B : Type u_1} [BooleanAlgebra B] (x : Possibility B) :
      B

      The second component of (a, i) records what must be the case.

      Equations
      Instances For
        theorem Orthologic.Possibility.truth_ne_bot {B : Type u_1} [BooleanAlgebra B] (x : Possibility B) :
        x.truth ≠ ⊥
        theorem Orthologic.Possibility.truth_le_info {B : Type u_1} [BooleanAlgebra B] (x : Possibility B) :
        x.truth ≤ x.info
        theorem Orthologic.Possibility.info_ne_bot {B : Type u_1} [BooleanAlgebra B] (x : Possibility B) :
        x.info ≠ ⊥
        def Orthologic.Possibility.compat {B : Type u_1} [BooleanAlgebra B] (x y : Possibility B) :

        Two possibilities are compatible when their truths overlap and each lies within the other's information ([HM24] Definition 5.1.2).

        Equations
        Instances For
          def Orthologic.Possibility.access {B : Type u_1} [BooleanAlgebra B] :
          SetRel (Possibility B) (Possibility B)

          A possibility accesses another when both components of the target lie between the components of the source ([HM24] Definition 5.1.3).

          Equations
          Instances For
            @[instance_reducible]
            instance Orthologic.Possibility.instDecidableCompatOfDecidableEqOfDecidableLE {B : Type u_1} [BooleanAlgebra B] (x y : Possibility B) [DecidableEq B] [DecidableLE B] :
            Decidable (x.compat y)
            Equations
            @[instance_reducible]
            instance Orthologic.Possibility.instDecidableMemProdSetRelAccessMkOfDecidableEqOfDecidableLE {B : Type u_1} [BooleanAlgebra B] (x y : Possibility B) [DecidableEq B] [DecidableLE B] :
            Decidable ((x, y) ∈ access)
            Equations
            def Orthologic.Possibility.diag {B : Type u_1} [BooleanAlgebra B] (a : B) (ha : a ≠ ⊥) :

            diag a is the possibility (a, a), which knows everything it settles.

            Equations
            Instances For
              @[simp]
              theorem Orthologic.Possibility.diag_truth {B : Type u_1} [BooleanAlgebra B] (a : B) (ha : a ≠ ⊥) :
              (diag a ha).truth = a
              @[simp]
              theorem Orthologic.Possibility.diag_info {B : Type u_1} [BooleanAlgebra B] (a : B) (ha : a ≠ ⊥) :
              (diag a ha).info = a
              theorem Orthologic.Possibility.compat_diag_truth {B : Type u_1} [BooleanAlgebra B] (x : Possibility B) :
              x.compat (diag x.truth ⋯)
              theorem Orthologic.Possibility.compat_diag_info {B : Type u_1} [BooleanAlgebra B] (x : Possibility B) :
              x.compat (diag x.info ⋯)
              theorem Orthologic.Possibility.access_diag_info {B : Type u_1} [BooleanAlgebra B] (x : Possibility B) :
              (x, diag x.info ⋯) ∈ access
              def Orthologic.epistemicFrame (B : Type u_2) [BooleanAlgebra B] :

              The epistemic frame of B is the compatibility frame on Possibility B ([HM24] Definition 5.1).

              Equations
              Instances For
                instance Orthologic.instIsReflPossibilityAccess {B : Type u_1} [BooleanAlgebra B] :

                Epistemic access is R-regular, witnessed by (a ⊔ d, a ⊔ d) ([HM24] Theorem 5.7.1).

                Epistemic access satisfies Knowability, witnessed by (a, a) ([HM24] Theorem 5.7.1).

                theorem Orthologic.refines_iff {B : Type u_1} [BooleanAlgebra B] (y x : Possibility B) :
                refines (epistemicFrame B) y x ↔ y.truth = x.truth ∧ y.info ≤ x.info

                Refinement in the epistemic frame is componentwise, (a, i) ⊑ (a', i') iff a = a' and i ≤ i' ([HM24] Lemma 5.2).

                def Orthologic.embed {B : Type u_1} [BooleanAlgebra B] (b : B) :
                Set (Possibility B)

                embed b is the set of possibilities whose truth entails b, the underlying set of the embedding e_B ([HM24] Theorem 5.7.2).

                Equations
                Instances For
                  @[simp]
                  theorem Orthologic.mem_embed {B : Type u_1} [BooleanAlgebra B] {b : B} {x : Possibility B} :
                  x ∈ embed b ↔ x.truth ≤ b
                  theorem Orthologic.mem_core_embed {B : Type u_1} [BooleanAlgebra B] {b : B} {x : Possibility B} :
                  x ∈ Possibility.access.core (embed b) ↔ x.info ≤ b

                  b must be the case at (a, i) iff i ≤ b. [HM24] Lemma 5.8.2.

                  theorem Orthologic.mem_diamond_embed {B : Type u_1} [BooleanAlgebra B] {b : B} {x : Possibility B} :
                  x ∈ diamond (epistemicFrame B) Possibility.access (embed b) ↔ x.truth ⊓ b ≠ ⊥

                  b might be the case at (a, i) iff a ⊓ b ≠ ⊥. [HM24] Lemma 5.8.3.

                  theorem Orthologic.embed_isRegular {B : Type u_1} [BooleanAlgebra B] (b : B) :

                  Embedded propositions are regular, witnessed at (a, i) ∉ e(b) by (a ⊓ bᶜ, i) ([HM24] Theorem 5.7.2).

                  theorem Orthologic.embed_compl {B : Type u_1} [BooleanAlgebra B] (b : B) :

                  The embedding sends complements to orthocomplements. [HM24] Theorem 5.7.2.

                  theorem Orthologic.embed_inf {B : Type u_1} [BooleanAlgebra B] (b c : B) :
                  embed (b ⊓ c) = embed b ∩ embed c

                  The embedding preserves meets. [HM24] Theorem 5.7.2.

                  For embedded propositions, what is the case and compatible with c is compatible with both, the inheritance principle of [HM24] Proposition 5.12.3.

                  The embedding into the regular propositions #

                  def Orthologic.eB {B : Type u_1} [BooleanAlgebra B] (b : B) :

                  eB b is the regular proposition e_B(b) of the embedding of B into the regular propositions of its epistemic frame ([HM24] Theorem 5.7.2).

                  Equations
                  Instances For
                    @[simp]
                    theorem Orthologic.coe_eB {B : Type u_1} [BooleanAlgebra B] (b : B) :
                    ↑(eB b) = embed b
                    theorem Orthologic.eB_mono {B : Type u_1} [BooleanAlgebra B] {b c : B} (h : b ≤ c) :
                    eB b ≤ eB c
                    theorem Orthologic.eB_le_iff {B : Type u_1} [BooleanAlgebra B] {b c : B} :
                    eB b ≤ eB c ↔ b ≤ c

                    e_B reflects order, as the possibility (b, ⊤) witnesses b ≤ c from e_B b ≤ e_B c.

                    theorem Orthologic.eB_injective {B : Type u_1} [BooleanAlgebra B] :
                    Function.Injective eB
                    theorem Orthologic.eB_top {B : Type u_1} [BooleanAlgebra B] :
                    eB ⊤ = ⊤
                    theorem Orthologic.eB_bot {B : Type u_1} [BooleanAlgebra B] :
                    eB ⊥ = ⊥
                    theorem Orthologic.eB_inf {B : Type u_1} [BooleanAlgebra B] (b c : B) :
                    eB (b ⊓ c) = eB b ⊓ eB c
                    theorem Orthologic.eB_compl {B : Type u_1} [BooleanAlgebra B] (b : B) :
                    eB bᶜ = (eB b)ᶜ
                    theorem Orthologic.not_diamond_embed_subset {B : Type u_1} [BooleanAlgebra B] {b : B} (hb : b ≠ ⊥) (hb' : b ≠ ⊤) :

                    The diamond of an embedded proposition strictly extends it unless the proposition is trivial, since (⊤, ⊤) lies in ◇e(b) but not in e(b) ([HM24] Theorem 5.7.4).

                    The epistemic extension is S5 #

                    instance Orthologic.instIsTransPossibilityAccess {B : Type u_1} [BooleanAlgebra B] :
                    theorem Orthologic.subset_core_diamond {B : Type u_1} [BooleanAlgebra B] (U : Set (Possibility B)) :

                    Whatever is the case must be possible, U ⊆ □◇U for every set U, witnessed by (a ⊔ a'', a ⊔ a'') for (a, i) ∈ U (the proof of [HM24] Theorem 5.7.3).

                    The 5 principle ◇U ≤ □◇U in the epistemic extension of B, which is therefore an S5 epistemic ortholattice ([HM24] Theorem 5.7.3).