Documentation

Pdl.Syntax

Syntax (Section 2.1) #

inductive Formula :
Instances For
    inductive Program :
    Instances For

      Abbreviations and Notation #

      Equations
      Instances For

        □(αs,φ)

        Equations
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              Equations
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                theorem Program.isAtomic_iff {α : Program} :
                α.isAtomic ∃ (a : ), α = ·a
                Equations
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  theorem Program.isStar_iff {α : Program} :
                  α.isStar ∃ (β : Program), α = (β)
                  @[simp]
                  theorem Formula.boxes_nil {φ : Formula} :
                  (⌈⌈[]⌉⌉φ) = φ
                  @[simp]
                  theorem Formula.boxes_cons {β : Program} {δ : List Program} {φ : Formula} :
                  theorem boxes_last {δ : List Program} {α : Program} {φ : Formula} :

                  Loaded Formulas #

                  inductive AnyFormula :
                  Instances For
                    inductive LoadFormula :
                    Instances For
                      inductive AnyNegFormula :
                      Instances For
                        Equations
                        Instances For
                          @[simp]
                          theorem loadMulti_nil {α : Program} {φ : Formula} :
                          @[simp]
                          theorem loadMulti_cons {β : Program} {δ : List Program} {α : Program} {φ : Formula} :
                          loadMulti (β :: δ) α φ = βAnyFormula.loaded (loadMulti δ α φ)
                          Equations
                          Instances For
                            Equations
                            Instances For
                              @[simp]
                              theorem unload_loadMulti {δ : List Program} {α : Program} {φ : Formula} :
                              (loadMulti δ α φ).unload = ⌈⌈δ⌉⌉αφ
                              inductive NegLoadFormula :
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem unload_boxes {δ : List Program} {φ : LoadFormula} :
                                      (⌊⌊δ⌋⌋φ).unload = ⌈⌈δ⌉⌉φ.unload
                                      @[simp]
                                      theorem unload_neg_loaded {α : Program} {χ : LoadFormula} :
                                      (~'αAnyFormula.loaded χ).1.unload = αχ.unload
                                      @[simp]
                                      theorem unload_neg_normal {α : Program} {φ : Formula} :
                                      (~'αAnyFormula.normal φ).1.unload = αφ

                                      Load a possibly already loaded formula χ with a sequence δ of boxes. The result is loaded iff δ≠[] or χ was loaded.

                                      Equations
                                      Instances For
                                        Equations
                                        Instances For

                                          Spliting of loaded formulas #

                                          Split any formula into the list of loaded boxes and the free formula.

                                          Equations
                                          Instances For

                                            Split a loaded formula into the list of loaded boxes and the free formula.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem AnyFormula.split_normal (φ : Formula) :
                                              (AnyFormula.normal φ).split = ([], φ)
                                              theorem AnyFormula.box_split {α : Program} (af : AnyFormula) :
                                              (αaf).split = (α :: af.split.fst, af.split.snd)
                                              @[simp]
                                              theorem LoadFormula.split_list_not_empty (lf : LoadFormula) :
                                              lf.split.fst []
                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem loadMulti_nonEmpty_box {δ : List Program} {α : Program} {h' : α :: δ []} {φ : Formula} (h : δ []) :
                                                theorem LoadFormula.split_eq_loadMulti_nonEmpty {δ : List Program} {φ : Formula} (lf : LoadFormula) (h : lf.split = (δ, φ)) :
                                                lf = loadMulti_nonEmpty δ φ
                                                theorem LoadFormula.split_eq_loadMulti_nonEmpty' {δ : List Program} {φ : Formula} (lf : LoadFormula) (h : δ []) (h2 : lf.split = (δ, φ)) :
                                                theorem loadMulti_nonEmpty_eq_loadMulti {δ : List Program} {α : Program} {h : δ ++ [α] []} {φ : Formula} :
                                                loadMulti_nonEmpty (δ ++ [α]) h φ = loadMulti δ α φ
                                                theorem LoadFormula.split_eq_loadMulti (lf : LoadFormula) {δ : List Program} {α : Program} {φ : Formula} (h : lf.split = (δ ++ [α], φ)) :
                                                lf = loadMulti δ α φ
                                                theorem LoadFormula.exists_splitLast (lf : LoadFormula) :
                                                ∃ (δ : List Program), ∃ (α : Program), lf.split.fst = δ ++ [α]
                                                theorem LoadFormula.exists_loadMulti (lf : LoadFormula) :
                                                ∃ (δ : List Program), ∃ (α : Program), ∃ (φ : Formula), lf = loadMulti δ α φ