Documentation

Linglib.Semantics.Modality.BranchingTime

Branching time (the 𝔗 model) #

The branching-times model of Prior–Thomason: an order-theoretic tree of moments, whose maximal chains are the histories. This is the sibling of the TΓ—W parallel-worlds model in Semantics/Modality/HistoricalAlternatives.lean; the two are inter-translatable by quotienting the historical-equivalence relation ([RL23] Β§4.1.3, deferred).

A branching-time structure is a left-linear (Core.Order.IsLeftLinear: no backward branching) and downward-directed (IsCodirectedOrder: historically connected) partial order ([RL23] Def 1). Histories are mathlib Flags (maximal chains).

Temporal-modal formulas are evaluated in one of two postsemantics ([RL23] Β§3.2): Peircean at a moment (future truth requires settledness) and Ockhamist at a moment/history pair (future truth is history-relative). Settledness oSettled (β–‘_O) quantifies over the histories through a moment.

The conceptual heart ([RL23] pp. 541, 546): the Ockhamist history parameter is not fixed by a context of utterance ("there is no actual future") β€” only the moment is. oSettled is precisely the operator that quantifies the unfixed parameter away, which is why the felicity facts (eventive futurate present, apprehensionals) turn on it.

Main definitions #

Main results #

The frame #

class BranchingTime.IsBranchingTime (M : Type u_2) [PartialOrder M] extends IsLeftLinear M, IsDirected M fun (x1 x2 : M) => x2 ≀ x1 :

A branching-time structure ([RL23] Def 1): a left-linear, downward-directed partial order. Left-linearity (IsLeftLinear) is no backward branching; downward-directedness (IsCodirectedOrder) is historical connectedness. Weaker than R&L Def 1(ii), which asks for a greatest common lower bound (fn. 9) β€” that strengthening is IsBranchingMeetTree.

Instances
    class BranchingTime.IsBranchingMeetTree (M : Type u_2) [SemilatticeInf M] extends IsLeftLinear M :

    The meet-tree form ([RL23] Def 1(ii) + fn. 9): branching points exist as meets, m₁ βŠ“ mβ‚‚ being the moment where the histories of m₁ and mβ‚‚ diverge. (The same βŠ“ that Core.Order.Branching.Positions uses for syntactic least common ancestors.)

    Instances

      Histories #

      def BranchingTime.Hist {M : Type u_1} [PartialOrder M] (m : M) :
      Set (Flag M)

      The histories through a moment: the maximal ≀-chains (mathlib Flag) containing m ([RL23] Def 2).

      Equations
      Instances For
        theorem BranchingTime.hist_nonempty {M : Type u_1} [PartialOrder M] (m : M) :
        (Hist m).Nonempty

        Every moment lies on a history.

        theorem BranchingTime.Iic_subset_of_mem {M : Type u_1} [PartialOrder M] [IsLeftLinear M] {m : M} {h : Flag M} (hm : m ∈ h) :
        Set.Iic m βŠ† ↑h

        The past of a moment sits inside every history through it β€” the past is history-independent. The payoff of left-linearity: Iic m is a chain (IsLeftLinear.isChain_Iic), so (h : Set M) βˆͺ Iic m is a chain extending the maximal chain h, forcing Iic m βŠ† h.

        theorem BranchingTime.exists_mem_gt_of_lt {M : Type u_1} [PartialOrder M] {m x : M} {h : Flag M} (hm : m ∈ h) (hx : m < x) :
        βˆƒ y ∈ h, m < y

        A history through a non-maximal moment contains a future moment: if m ∈ h and m < x for some x, then h contains some y > m. (Otherwise insert x h would be a strictly larger chain, contradicting h's maximality.) The engine of inevitability reasoning: a history cannot stop at a moment that still has a future.

        Postsemantics #

        MProp = truth at a moment (Peircean); OProp = truth at a moment/history pair (Ockhamist; intended m ∈ h). Atomic propositions depend only on the moment ([RL23] Def 3).

        @[reducible, inline]
        abbrev BranchingTime.MProp (M : Type u_2) :
        Type u_2

        A Peircean proposition: truth at a moment.

        Equations
        Instances For
          @[reducible, inline]
          abbrev BranchingTime.OProp (M : Type u_2) [PartialOrder M] :
          Type u_2

          An Ockhamist proposition: truth at a moment/history pair.

          Equations
          Instances For
            def BranchingTime.pPast {M : Type u_1} [PartialOrder M] (Ο† : MProp M) :

            Peircean past: Ο† held at some earlier moment ([RL23] Β§3.2.1).

            Equations
            Instances For
              def BranchingTime.oAtom {M : Type u_1} [PartialOrder M] (Ο† : MProp M) :

              Lift a moment-proposition to an Ockhamist one, ignoring the history (atoms depend only on the moment).

              Equations
              Instances For
                def BranchingTime.oPast {M : Type u_1} [PartialOrder M] (Ο† : OProp M) :

                Ockhamist past: Ο† held at some earlier moment, along the same history.

                Equations
                Instances For
                  def BranchingTime.oFut {M : Type u_1} [PartialOrder M] (Ο† : OProp M) :

                  Ockhamist future (F_O): Ο† holds at some later moment on the fixed history h ([RL23] Β§3.2.2).

                  Equations
                  Instances For
                    def BranchingTime.oSettled {M : Type u_1} [PartialOrder M] (Ο† : OProp M) :

                    Ockhamist settledness (β–‘_O): Ο† holds at m on every history through m ([RL23] Β§3.2.2). The history argument is ignored β€” settledness quantifies the (contextually unfixed) history parameter away.

                    Equations
                    Instances For
                      def BranchingTime.oSupervaluation {M : Type u_1} [PartialOrder M] (Ο† : OProp M) :

                      Supervaluationist truth at a moment (Thomason 1970): β–‘_O read off the moment. The third classic postsemantics; makes the settledness connection explicit.

                      Equations
                      Instances For

                        Settledness (context-relative) #

                        The objective "all histories through m agree" is the special case of agreement over the histories compatible with a context/common ground ([Phi21]'s "presumed settled" is over ∩cg, not all histories; the TΓ—W sibling carries the same cg parameter).

                        def BranchingTime.IsInevitable {M : Type u_1} [PartialOrder M] (Ο† : MProp M) (m : M) :

                        A future-directed claim Ο† is inevitable at m: on every history through m, Ο† eventually holds. This is the Peircean future.

                        Equations
                        Instances For
                          def BranchingTime.PresumedSettled {M : Type u_1} [PartialOrder M] (C : Set (Flag M)) (Ο† : MProp M) (m : M) :

                          Presumed settled-whether relative to a context set C of histories: all C-histories agree on whether Ο† will hold ([Phi21]'s "(not) presumed settled").

                          Equations
                          • BranchingTime.PresumedSettled C Ο† m = ((βˆ€ h ∈ C, βˆƒ m' ∈ h, m < m' ∧ Ο† m') ∨ βˆ€ h ∈ C, Β¬βˆƒ m' ∈ h, m < m' ∧ Ο† m')
                          Instances For
                            @[reducible, inline]
                            abbrev BranchingTime.IsSettledWhether {M : Type u_1} [PartialOrder M] (Ο† : MProp M) (m : M) :

                            Objective settledness = presumed-settled relative to the maximal context (all histories).

                            Equations
                            Instances For

                              Tense translations ([Kau05b] via [RL23] Β§4.1.3) #

                              PRESENT Q := Q ∨ F_O Q, PAST Q := P_O Q. These encode [Kau05b]'s non-deictic-present analysis (morphological present = non-pastness) reconstructed in Ockhamism β€” not neutral branching primitives ([Sch08e]'s Peircean reconstruction gives the same surface forms).

                              def BranchingTime.kaufmannPresent {M : Type u_1} [PartialOrder M] (Ο† : OProp M) :

                              [Kau05b]'s present (non-deictic), Ockhamist reconstruction.

                              Equations
                              Instances For
                                def BranchingTime.kaufmannPast {M : Type u_1} [PartialOrder M] (Ο† : OProp M) :

                                [Kau05b]'s past, Ockhamist reconstruction.

                                Equations
                                Instances For

                                  Theorems #

                                  @[simp]
                                  theorem BranchingTime.oSettled_oAtom {M : Type u_1} [PartialOrder M] (Ο† : MProp M) (m : M) (h : Flag M) :
                                  oSettled (oAtom Ο†) m h ↔ Ο† m

                                  Atomic propositions are settled ([RL23] fn. 10): the valuation depends only on the moment, so β–‘_O Q ↔ Q. Uses history-nonemptiness.

                                  theorem BranchingTime.isInevitable_iff_oSupervaluation_oFut {M : Type u_1} [PartialOrder M] (Ο† : MProp M) (m : M) :
                                  IsInevitable Ο† m ↔ oSupervaluation (oFut (oAtom Ο†)) m

                                  Peircean future = Ockhamist settled future ([RL23] Β§3.2): inevitability of Ο† is β–‘_O F_O Ο† read off the moment. Holds by construction β€” the two postsemantics' notions of "settled that Ο† will happen" coincide.

                                  Grounding in the Core.Order comparison kernel #

                                  The Ockhamist past/future operators reuse the shared point-comparison kernel (Core.Order.holds over Finset Ordering) rather than re-stipulating "earlier"/"later": oPast's witness sits before the evaluation moment, oFut's sits after it. Since Core.Order.before = Tense.past and Core.Order.after = Tense.future, branching-time tense and the rest of the library's tense are the same comparison. These are the linear-frame reductions (no branching, so the comparison is total on all of M); for a genuinely branching frame the comparison lives on each history's chain order (Flag's LinearOrder), oFut_oAtom_holds_on_hist.

                                  @[simp]
                                  theorem BranchingTime.oPast_oAtom_iff_holds {M : Type u_2} [LinearOrder M] (Ο† : MProp M) (m : M) (h : Flag M) :
                                  oPast (oAtom Ο†) m h ↔ βˆƒ (m' : M), Core.Order.holds Core.Order.before m' m ∧ Ο† m'
                                  @[simp]
                                  theorem BranchingTime.oFut_oAtom_iff_holds {M : Type u_2} [LinearOrder M] (Ο† : MProp M) (m : M) (h : Flag M) :
                                  oFut (oAtom Ο†) m h ↔ βˆƒ m' ∈ h, Core.Order.holds Core.Order.after m' m ∧ Ο† m'
                                  theorem BranchingTime.oFut_oAtom_holds_on_hist {M : Type u_2} [PartialOrder M] [DecidableEq M] [DecidableRel fun (x1 x2 : M) => x1 ≀ x2] [DecidableLT M] (Ο† : MProp M) {m : M} {h : Flag M} (hm : m ∈ h) :
                                  oFut (oAtom Ο†) m h ↔ βˆƒ (x : β†₯h), Core.Order.holds Core.Order.after x ⟨m, hm⟩ ∧ Ο† ↑x

                                  Genuine-branching grounding (oFut on any branching frame): the future witness comparison is Core.Order.holds after over the history's own chain order (mathlib's LinearOrder β†₯h for a maximal chain h). So the Ockhamist future along a history is literally the comparison-kernel future, with the chain supplying the linear order Core.Order.holds requires.