Documentation

Pdl.Sequent

Sequents #

Optional loaded formulas (Olfs) #

@[reducible, inline]
abbrev Olf :

In nodes we optionally have a negated loaded formula on the left or right.

Equations
Instances For
    def Olf.voc :
    Equations
    Instances For
      Equations
      Instances For
        @[simp]
        theorem Olf.L_none :
        @[simp]
        theorem Olf.L_inr {lf : NegLoadFormula} :
        L (some (Sum.inr lf)) = []
        Equations
        Instances For
          @[simp]
          theorem Olf.R_none :
          @[simp]
          theorem Olf.R_inl {lf : NegLoadFormula} :
          R (some (Sum.inl lf)) = []
          Equations
          @[simp]
          theorem Option.some_subseteq {α : Type u_1} {x : α} {O : Option α} :
          some x O some x = O
          instance Option.insHasSdiff {α : Type u_1} [DecidableEq α] :

          Instance that is used to say (O : Olf) \ (O' : Olf).

          Equations
          • One or more equations did not get rendered due to their size.
          @[simp]
          theorem Option.insHasSdiff_none {α : Type u_1} {o : Option α} [DecidableEq α] :
          @[simp]
          theorem Option.insHasSdiff_remove_none_cancel {α : Type u_1} {o : Option α} [DecidableEq α] :
          o \ none = o
          @[simp]
          theorem Option.insHasSdiff_remove_sem_eq_none {α : Type u_1} {x : α} [DecidableEq α] :
          def Option.overwrite {α : Type u_1} :
          Option αOption αOption α
          Equations
          Instances For
            def Olf.change (oldO Ocond newO : Olf) :
            Equations
            Instances For
              @[simp]
              theorem Olf.change_none_none {oldO : Olf} :
              oldO.change none none = oldO
              @[simp]
              theorem Olf.change_some {oldO whatever : Olf} {wnlf : NegLoadFormula NegLoadFormula} :
              oldO.change whatever (some wnlf) = some wnlf
              @[simp]
              theorem Olf.change_some_some_eq { : NegLoadFormula NegLoadFormula} {Onew : Olf} :
              change (some ) (some ) Onew = Onew

              Sequents and their (multi)set quality #

              A tableau node is labelled with two lists of formulas and an Olf. Each formula is placed on the left or right and up to one formula may be loaded.

              Equations
              Instances For

                Two Sequents are set-equal when their components are finset-equal. That is, we do not care about the order of the lists, but we do care about the side of the formula and what formual is loaded. Hint: use List.toFinset.ext_iff with this.

                Equations
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.

                  Two Sequents are multiset-equal when their components are multiset-equal. That is, we do not care about the order of the lists, but we do care about the side on which the formula is, whether it is loaded or not, and how often it occurs.

                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    @[simp]

                    Components and sides of sequents #

                    Equations
                    Instances For
                      Equations
                      Instances For
                        Equations
                        Instances For
                          Equations
                          Instances For
                            Equations
                            Instances For

                              Formulas as elements of sequents #

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Equations
                              Instances For

                                Closed, basic, loaded and free sequents #

                                A sequent is closed iff it contains or contains a formula and its negation.

                                Equations
                                Instances For

                                  A sequent is basic iff it only contains basic formulas and is not closed.

                                  Equations
                                  Instances For
                                    instance Fintype.decidableExistsConjFintype {α : Type u_1} {p q : αProp} [DecidablePred p] [DecidablePred q] [Fintype (Subtype p)] :
                                    Decidable (∃ (a : α), p a q a)

                                    A variant of Fintype.decidableExistsFintype, used by instDecidableClosed.

                                    Equations
                                    Equations
                                    Equations
                                    Instances For

                                      Semantics of sequents #

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Equations
                                      theorem vDash_setEqTo_iff {W : Type} {X Y : Sequent} (h : X.setEqTo Y) (M : KripkeModel W) (w : W) :
                                      (M, w)X (M, w)Y
                                      theorem vDash_multisetEqTo_iff {W : Type} {X Y : Sequent} (h : X.multisetEqTo Y) (M : KripkeModel W) (w : W) :
                                      (M, w)X (M, w)Y

                                      Removing loaded formulas from sequents #

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem Sequent.isFree_then_without_isFree (LRO : Sequent) :
                                        LRO.isFree = true∀ (anf : AnyNegFormula), (LRO.without anf).isFree = true
                                        inductive Side :
                                        Instances For
                                          def sideOf {α : Type u_1} :
                                          α αSide
                                          Equations
                                          Instances For
                                            Equations
                                            Instances For
                                              theorem AnyNegFormula.in_side_of_setEqTo {side : Side} {X Y : Sequent} (h : X.setEqTo Y) {anf : AnyNegFormula} :
                                              anf.in_side side X anf.in_side side Y
                                              theorem AnyNegFormula.in_side_of_multisetEqTo {side : Side} {X Y : Sequent} (h : X.multisetEqTo Y) {anf : AnyNegFormula} :
                                              anf.in_side side X anf.in_side side Y
                                              theorem Sequent.isLoaded_of_negAnyFormula_loaded {α : Program} {ξ : AnyFormula} {side : Side} {X : Sequent} (negLoad_in : (~''(AnyFormula.loaded (αξ))).in_side side X) :