Documentation

PGCL.Exp

Custom operators #

class Validate (α : Type u_1) :
Type u_1
  • validate : αα

    Validate

Instances
    class Covalidate (α : Type u_1) :
    Type u_1
    • covalidate : αα

      Co-validate

    Instances

      Heyting co-implication

      Equations
      Instances For

        Set / lattice complement

        Equations
        Instances For

          Validate

          Equations
          Instances For

            Co-validate

            Equations
            Instances For
              @[implicit_reducible]
              instance instValidateOfHNot {α : Type u_1} [HNot α] :
              Equations
              @[implicit_reducible]
              instance instCovalidateOfCompl {α : Type u_1} [Compl α] :
              Equations
              @[implicit_reducible]
              noncomputable instance instSDiffForall_pGCL {α : Type u_1} {β : Type u_2} [SDiff β] :
              SDiff (αβ)
              Equations
              theorem ENNReal.compl_def {a : ENNReal} :
              ~ a = if a = 0 then else 0
              theorem ENNReal.himp_def {a b : ENNReal} :
              a b = if a b then else b
              theorem ENNReal.sdiff_def {a b : ENNReal} :
              a \ b = if a b then 0 else a
              theorem ENNReal.le_covalidate_sdiff {x a b : ENNReal} :
              x (a \ b) a bx = 0
              theorem ENNReal.le_covalidate_sdiff_of_lt {x a b : ENNReal} (h : b < a) :
              x (a \ b)
              theorem ENNReal.validate_himp_le_of_lt {x a b : ENNReal} (h : b < a) :
              (a b) x
              @[simp]
              theorem ENNReal.himp_zero_le (x y : ENNReal) :
              x 0 y x = 0y =
              @[simp]
              theorem ENNReal.himp_zero_eq_zero (x : ENNReal) :
              x 0 = 0 ¬x = 0
              @[simp]
              theorem ENNReal.sdiff_zero_eq_zero (x y : ENNReal) :
              x \ y = 0 x y
              @[simp]
              theorem ENNReal.max_sdiff (x y : ENNReal) :
              max x (y \ ) = x
              @[simp]
              theorem ENNReal.lt_himp (x y z : ENNReal) (hx : x < ) :
              x < y z z < yx < z
              @[simp]
              theorem ENNReal.zero_himp (x : ENNReal) :
              0 x =
              @[implicit_reducible]
              noncomputable instance instSDiffENNReal_pGCL :
              Equations
              class Iverson (α : Type u_1) (β : outParam (Type u_2)) :
              Type (max u_1 u_2)
              • iver : αβ

                Iverson brackets i[b]

              Instances

                Iverson brackets i[b]

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  class LawfulIverson (α : Type u_1) (β : outParam (Type u_2)) [Iverson α β] [LE β] [One β] :
                  • iver_le_one (b : α) : i[b] 1
                  Instances
                    @[implicit_reducible]
                    Equations
                    @[implicit_reducible]
                    noncomputable instance Iverson.instPropNat :
                    Equations
                    @[simp]
                    @[simp]
                    theorem Iverson.iver_neg {b : Prop} :
                    i[¬b] = 1 - i[b]
                    theorem Iverson.iver_not {b : Bool} :
                    i[!b] = 1 - i[b]
                    @[implicit_reducible]
                    instance Pi.instSubstitution {α : Type u_1} {β : Type u_2} {ι : Type u_3} {γ : ιType u_4} [Substitution α γ] :
                    Substitution (αβ) fun (a : ι) => αγ a
                    Equations
                    @[simp]
                    theorem Pi.substs_cons {α : Type u_1} {β : Type u_2} {ι : Type u_3} {γ : ιType u_4} [Substitution α γ] {σ : α} (f : αβ) (x₀ : (a : ι) × (αγ a)) (xs : List ((a : ι) × (αγ a))) :
                    (f[..x₀ :: xs]) σ = (f[..xs]) (σ[x₀.fst x₀.snd σ])
                    @[implicit_reducible]
                    noncomputable instance Pi.instIverson {α : Type u_1} :
                    Iverson (αProp) (αENNReal)
                    Equations
                    @[implicit_reducible]
                    noncomputable instance Pi.instIversonBool {α : Type u_1} :
                    Iverson (αBool) (αENNReal)
                    Equations
                    @[simp]
                    theorem Pi.iver_prop_apply {α : Type u_1} {f : αProp} {σ : α} :
                    i[f] σ = i[f σ]
                    @[simp]
                    theorem Pi.iver_bool_apply {α : Type u_1} {f : αBool} {σ : α} :
                    i[f] σ = i[f σ]
                    instance Pi.instLawfulIverson {α : Type u_1} :
                    LawfulIverson (αProp) (αENNReal)
                    instance Pi.instLawfulIversonBool {α : Type u_1} :
                    LawfulIverson (αBool) (αENNReal)
                    @[simp]
                    theorem Pi.iver_subst {α : Type u_1} {ι : Type u_2} {γ : ιType u_3} [Substitution α γ] (f : αProp) (x : ι) (y : αγ x) :
                    i[f][x y] = i[f[x y]]
                    @[simp]
                    theorem Pi.iver_bool_subst {α : Type u_1} {ι : Type u_2} {γ : ιType u_3} [Substitution α γ] (f : αBool) (x : ι) (y : αγ x) :
                    i[f][x y] = i[f[x y]]
                    @[simp]
                    theorem Pi.iver_True {α : Type u_1} :
                    i[fun (x : α) => True] = 1
                    @[simp]
                    theorem Pi.iver_True_compl {α : Type u_1} :
                    i[~ fun (x : α) => True] = 0
                    @[simp]
                    theorem Pi.iver_False {α : Type u_1} :
                    i[fun (x : α) => False] = 0
                    @[simp]
                    theorem Pi.iver_False_compl {α : Type u_1} :
                    i[~ fun (x : α) => False] = 1
                    @[simp]
                    @[simp]
                    theorem ENNReal.iver_eq_zero_himp_le (x y z : ENNReal) (hz : z ) :
                    i[x = 0] * y z x = 0 y z

                    Expressions & State #

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def pGCL.State {𝒱 : Type u_1} (Γ : 𝒱Type u_2) :
                      Type (max u_1 u_2)
                      Equations
                      Instances For
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[implicit_reducible]
                          instance pGCL.State.instSubstitution {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] :
                          Equations
                          theorem pGCL.State.ext {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ₁ σ₂ : State Γ} (h : ∀ (v : 𝒱), σ₁ v = σ₂ v) :
                          σ₁ = σ₂
                          theorem pGCL.State.ext_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ₁ σ₂ : State Γ} :
                          σ₁ = σ₂ ∀ (v : 𝒱), σ₁ v = σ₂ v
                          @[simp]
                          theorem pGCL.State.subst_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {x : 𝒱} {v : Γ x} {y : 𝒱} [DecidableEq 𝒱] {σ : State Γ} :
                          (σ[x v]) y = if h : x = y then cast v else σ y
                          instance pGCL.Exp.instAddLeftMonoForall_pGCL {α : Type u_4} {ι : Type u_3} [Add α] [LE α] [AddLeftMono α] :
                          AddLeftMono (ια)
                          instance pGCL.Exp.instAddRightMonoForall_pGCL {α : Type u_4} {ι : Type u_3} [Add α] [LE α] [AddRightMono α] :
                          AddRightMono (ια)
                          @[simp]
                          theorem pGCL.Exp.add_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State Γα} [DecidableEq 𝒱] {xs : List ((a : 𝒱) × (State ΓΓ a))} [Add α] :
                          (a + b)[..xs] = a[..xs] + b[..xs]
                          @[simp]
                          theorem pGCL.Exp.sub_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State Γα} [DecidableEq 𝒱] {xs : List ((a : 𝒱) × (State ΓΓ a))} [Sub α] :
                          (a - b)[..xs] = a[..xs] - b[..xs]
                          @[simp]
                          theorem pGCL.Exp.mul_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State Γα} [DecidableEq 𝒱] {xs : List ((a : 𝒱) × (State ΓΓ a))} [Mul α] :
                          (a * b)[..xs] = a[..xs] * b[..xs]
                          @[simp]
                          theorem pGCL.Exp.div_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State Γα} [DecidableEq 𝒱] {xs : List ((a : 𝒱) × (State ΓΓ a))} [Div α] :
                          (a / b)[..xs] = a[..xs] / b[..xs]
                          @[simp]
                          theorem pGCL.Exp.max_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State Γα} [DecidableEq 𝒱] {xs : List ((a : 𝒱) × (State ΓΓ a))} [Max α] :
                          (ab)[..xs] = a[..xs]b[..xs]
                          @[simp]
                          theorem pGCL.Exp.min_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State Γα} [DecidableEq 𝒱] {xs : List ((a : 𝒱) × (State ΓΓ a))} [Min α] :
                          (ab)[..xs] = a[..xs]b[..xs]
                          @[simp]
                          theorem pGCL.Exp.himp_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State Γα} [DecidableEq 𝒱] {xs : List ((a : 𝒱) × (State ΓΓ a))} [HImp α] :
                          (a b)[..xs] = a[..xs] b[..xs]
                          @[simp]
                          theorem pGCL.Exp.sdiff_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State Γα} [DecidableEq 𝒱] {xs : List ((a : 𝒱) × (State ΓΓ a))} [SDiff α] :
                          (b \ a)[..xs] = b[..xs] \ a[..xs]
                          @[simp]
                          theorem pGCL.Exp.validate_apply {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ : State Γ} [HNot α] {φ : State Γα} :
                          ( φ) σ = φ σ
                          @[simp]
                          theorem pGCL.Exp.covalidate_apply {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ : State Γ} [Compl α] {φ : State Γα} :
                          ( φ) σ = φ σ
                          @[simp]
                          theorem pGCL.Exp.subst_apply {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ : State Γ} [DecidableEq 𝒱] (e : State Γα) (x : 𝒱) (A : State ΓΓ x) :
                          (e[x A]) σ = e (σ[x A σ])
                          @[simp]
                          theorem pGCL.Exp.subst₂_apply {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {y : 𝒱} {B : State ΓΓ y} {σ : State Γ} [DecidableEq 𝒱] (e : State Γα) (x : 𝒱) (A : State ΓΓ x) :
                          (e[x A, y B]) σ = e (σ[y B (σ[x A σ]), x A σ])
                          theorem pGCL.Exp.add_le_add {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [Add α] [Preorder α] [AddLeftMono α] [AddRightMono α] (a b c d : State Γα) (hac : a c) (hbd : b d) :
                          a + b c + d
                          theorem pGCL.Exp.mul_le_mul {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [Mul α] [Preorder α] [MulLeftMono α] [MulRightMono α] (a b c d : State Γα) (hac : a c) (hbd : b d) :
                          a * b c * d
                          @[reducible, inline]
                          abbrev pGCL.BExpr {𝒱 : Type u_1} (Γ : 𝒱Type u_3) :
                          Type (max u_3 u_1)
                          Equations
                          Instances For
                            noncomputable def pGCL.BExpr.forall_ {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] (x : 𝒱) (b : BExpr Γ) :
                            Equations
                            Instances For
                              noncomputable def pGCL.BExpr.exists_ {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] (x : 𝒱) (b : BExpr Γ) :
                              Equations
                              Instances For
                                @[implicit_reducible]
                                instance pGCL.BExpr.instHNot {𝒱✝ : Type u_3} {α : 𝒱✝Type u_4} :
                                HNot (BExpr α)
                                Equations
                                def pGCL.BExpr.coe_prop {𝒱 : Type u_1} {Γ : 𝒱Type u_2} :
                                PropBExpr Γ
                                Equations
                                • b x✝ = b
                                Instances For
                                  @[implicit_reducible]
                                  instance pGCL.BExpr.instCoePropForallState {𝒱 : Type u_1} {Γ : 𝒱Type u_2} :
                                  Coe Prop (State ΓProp)
                                  Equations
                                  @[simp]
                                  theorem pGCL.BExpr.coe_prop_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ : State Γ} {b : Prop} :
                                  b σ = b
                                  @[simp]
                                  theorem pGCL.BExpr.iver_mul_le_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {b : BExpr Γ} {σ : State Γ} {X : State ΓENNReal} :
                                  i[b σ] * X σ X σ
                                  @[simp]
                                  theorem pGCL.BExpr.iver_mul_le {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {b : BExpr Γ} {X : State ΓENNReal} :
                                  i[b] * X X
                                  @[simp]
                                  theorem pGCL.BExpr.mul_iver_le_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {b : BExpr Γ} {σ : State Γ} {X : State ΓENNReal} :
                                  X σ * i[b σ] X σ
                                  @[simp]
                                  theorem pGCL.BExpr.mul_iver_le {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {b : BExpr Γ} {X : State ΓENNReal} :
                                  X * i[b] X
                                  noncomputable def pGCL.BExpr.lt {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [PartialOrder α] (l r : State Γα) :
                                  Equations
                                  Instances For
                                    noncomputable def pGCL.BExpr.le {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [PartialOrder α] (l r : State Γα) :
                                    Equations
                                    Instances For
                                      noncomputable def pGCL.BExpr.eq {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} (l r : State Γα) :
                                      Equations
                                      Instances For
                                        def pGCL.BExpr.and {𝒱 : Type u_1} {Γ : 𝒱Type u_2} (l r : BExpr Γ) :
                                        Equations
                                        Instances For
                                          def pGCL.BExpr.or {𝒱 : Type u_1} {Γ : 𝒱Type u_2} (l r : BExpr Γ) :
                                          Equations
                                          Instances For
                                            noncomputable def pGCL.BExpr.ite {𝒱 : Type u_1} {Γ : 𝒱Type u_2} (b l r : BExpr Γ) :
                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem pGCL.BExpr.lt_apply {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [PartialOrder α] {σ : State Γ} {l r : State Γα} :
                                              lt l r σ l σ < r σ
                                              @[simp]
                                              theorem pGCL.BExpr.le_apply {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [PartialOrder α] {σ : State Γ} {l r : State Γα} :
                                              le l r σ l σ r σ
                                              @[simp]
                                              theorem pGCL.BExpr.eq_apply {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ : State Γ} {l r : State Γα} :
                                              eq l r σ l σ = r σ
                                              @[simp]
                                              theorem pGCL.BExpr.and_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ : State Γ} {l r : BExpr Γ} :
                                              l.and r σ l σ r σ
                                              @[simp]
                                              theorem pGCL.BExpr.or_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ : State Γ} {l r : BExpr Γ} :
                                              l.or r σ l σ r σ
                                              @[simp]
                                              theorem pGCL.BExpr.ite_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {σ : State Γ} (b l r : BExpr Γ) :
                                              b.ite l r σ = if b σ then l σ else r σ
                                              @[simp]
                                              theorem pGCL.BExpr.eq_subst {α : Type u_3} {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {xs : List ((a : 𝒱) × (State ΓΓ a))} [DecidableEq 𝒱] {a b : State Γα} :
                                              (eq a b)[..xs] = eq (a[..xs]) (b[..xs])
                                              instance OrderHom.instAddLeftMonoForallStateENNReal {𝒱✝ : Type u_3} {Γ : 𝒱✝Type u_4} :
                                              instance OrderHom.instAddRightMonoForallStateENNReal {𝒱✝ : Type u_3} {Γ : 𝒱✝Type u_4} :
                                              @[implicit_reducible]
                                              instance OrderHom.instAdd {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] [Add β] [AddLeftMono β] [AddRightMono β] :
                                              Add (α →o β)
                                              Equations
                                              @[simp]
                                              theorem OrderHom.add_apply {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] [Add β] [AddLeftMono β] [AddRightMono β] {x : α} (f g : α →o β) :
                                              (f + g) x = f x + g x
                                              @[simp]
                                              theorem OrderHom.add_apply2' {α : Type u_1} [Preorder α] {𝒱✝ : Type u_3} {Γ : 𝒱✝Type u_4} {x : α} {y : pGCL.State Γ} (f g : α →o pGCL.State ΓENNReal) :
                                              (f + g) x y = f x y + g x y
                                              @[implicit_reducible]
                                              instance OrderHom.instOfNat_pGCL {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {n : } [OfNat β n] :
                                              OfNat (α →o β) n
                                              Equations
                                              @[simp]
                                              theorem OrderHom.ofNat_apply {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {n : } {a : α} [OfNat β n] :
                                              @[implicit_reducible]
                                              Equations
                                              instance OrderHom.instAddRightMonoForall_pGCL {α : Type u_3} {β : Type u_4} [Preorder β] [Add β] [i : AddRightMono β] :
                                              AddRightMono (αβ)
                                              instance OrderHom.instAddLeftMonoForall_pGCL {α : Type u_3} {β : Type u_4} [Preorder β] [Add β] [i : AddLeftMono β] :
                                              AddLeftMono (αβ)
                                              @[simp]
                                              theorem OrderHom.mk_apply {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {ι : Type u_3} {a : α} {f : αιβ} {h : Monotone f} {b : ι} :
                                              { toFun := f, monotone' := h } a b = f a b
                                              @[simp]
                                              theorem OrderHom.mk_apply' {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {ι : Type u_3} {a : α} {f : αιβ} {h : Monotone f} {b : ι} :
                                              { toFun := f, monotone' := h } a b = f a b
                                              @[simp]
                                              theorem OrderHom.comp_apply' {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {a : α} {ι : Type u_4} {γ : Type u_5} [Preorder γ] {f : β →o ιγ} {g : α →o β} {b : ι} :
                                              (f.comp g) a b = f (g a) b