Documentation

PGCL.Fix

theorem OrderHom.le_gfp_prob {𝒱✝ : Type u_1} {Γ : 𝒱✝Type u_2} {x : pGCL.State ΓENNReal} {f : pGCL.ProbExp Γ →o pGCL.ProbExp Γ} (h₁ : x 1) (h₂ : x (f x, h₁)) :
x (gfp f)
theorem OrderHom.le_gfp_of_iter_prob {𝒱✝ : Type u_1} {Γ : 𝒱✝Type u_2} {x : pGCL.State ΓENNReal} {f : pGCL.ProbExp Γ →o pGCL.ProbExp Γ} (k : ) (h₁ : x 1) (h₂ : x (f ((fun (x_1 : pGCL.ProbExp Γ) => f x_1x, h₁)^[k] x, h₁))) :
x (gfp f)
def pGCL.Exp.substs_mono {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {X₁ X₂ : State ΓENNReal} {xs : List ((v : 𝒱) × (State ΓΓ v))} (h : X₁ X₂) :
X₁[..xs] X₂[..xs]
Equations
  • =
Instances For
    theorem pGCL.Exp.himp_mono {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a₁ a₂ b₁ b₂ : State ΓENNReal} (ha : a₂ a₁) (hb : b₁ b₂) :
    a₁ b₁ a₂ b₂
    theorem pGCL.Exp.hnot_mono {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a₁ a₂ : State ΓENNReal} (ha : a₂ a₁) :
    a₁ a₂
    theorem pGCL.Exp.compl_mono {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a₁ a₂ : State ΓENNReal} (ha : a₂ a₁) :
    ~ a₁ ~ a₂
    theorem pGCL.Exp.validate_mono {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a₁ a₂ : State ΓENNReal} (ha : a₁ a₂) :
    a₁ a₂
    theorem pGCL.Exp.covalidate_mono {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a₁ a₂ : State ΓENNReal} (ha : a₁ a₂) :
    a₁ a₂
    theorem pGCL.ENNReal.hnot_mono {a₁ a₂ : ENNReal} (ha : a₂ a₁) :
    a₁ a₂
    theorem pGCL.ENNReal.covalidate_mono {a₁ a₂ : ENNReal} (ha : a₁ a₂) :
    a₁ a₂
    @[simp]
    theorem pGCL.Exp.zero_himp {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a : State ΓENNReal} :
    0 a =
    theorem pGCL.State.subst_comm {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {x₁ x₂ : 𝒱} {v₁ : Γ x₁} {v₂ : Γ x₂} (h : x₁ x₂) :
    σ[x₁ v₁][x₂ v₂] = σ[x₂ v₂][x₁ v₁]
    @[simp]
    theorem pGCL.Exp.top_subst {𝒱 : Type u_1} {Γ : 𝒱Type u_3} [DecidableEq 𝒱] (xs : List ((v : 𝒱) × (State ΓΓ v))) :
    @[simp]
    theorem pGCL.Exp.iver_subst {𝒱 : Type u_1} {Γ : 𝒱Type u_3} [DecidableEq 𝒱] {b : BExpr Γ} (xs : List ((v : 𝒱) × (State ΓΓ v))) :
    @[simp]
    theorem pGCL.Exp.not_subst {𝒱 : Type u_1} {Γ : 𝒱Type u_3} [DecidableEq 𝒱] {b : BExpr Γ} (xs : List ((v : 𝒱) × (State ΓΓ v))) :
    (~ b)[..xs] = ~ b[..xs]
    @[simp]
    theorem pGCL.Exp.hnot_subst {𝒱 : Type u_1} {Γ : 𝒱Type u_3} [DecidableEq 𝒱] {a : State ΓENNReal} (xs : List ((v : 𝒱) × (State ΓΓ v))) :
    (a)[..xs] = a[..xs]
    @[simp]
    theorem pGCL.Exp.validate_subst {𝒱 : Type u_1} {Γ : 𝒱Type u_3} [DecidableEq 𝒱] {a : State ΓENNReal} (xs : List ((v : 𝒱) × (State ΓΓ v))) :
    ( a)[..xs] = a[..xs]
    @[simp]
    theorem pGCL.Exp.covalidate_subst {𝒱 : Type u_1} {Γ : 𝒱Type u_3} [DecidableEq 𝒱] {a : State ΓENNReal} (xs : List ((v : 𝒱) × (State ΓΓ v))) :
    ( a)[..xs] = a[..xs]
    @[simp]
    theorem pGCL.BExpr.eq_self {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a : State ΓENNReal} :
    @[simp]
    theorem pGCL.BExpr.eq_of_ne {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a b : State ΓENNReal} (h : ∀ (σ : State Γ), a σ b σ) :
    @[simp]
    theorem pGCL.BExpr.iver_coe_bool {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a : Prop} :
    i[a] = i[a]
    @[simp]
    theorem pGCL.BExpr.not_coe_bool {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {a : Prop} :
    ~ a = ¬a
    noncomputable def pGCL.State.cofix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} (σ₀ : State Γ) {S : Set 𝒱} (σ : State fun (x : ↑(~ S)) => Γ x) :
    Equations
    Instances For
      @[simp]
      theorem pGCL.State.cofix_apply_mem {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {v : 𝒱} {S : Set 𝒱} (h : v S) (σ₀ : State Γ) (σ' : State fun (x : ↑(~ S)) => Γ x) :
      σ₀.cofix σ' v = σ₀ v
      noncomputable def pGCL.Exp.fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {α : Sort u_3} (X : State Γα) (S : Set 𝒱) (σ₀ : State Γ) :
      (State fun (x : ↑(~ S)) => Γ x)α
      Equations
      Instances For
        @[simp]
        theorem pGCL.Exp.fix_empty {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {α : Sort u_3} {σ₀ : State Γ} {σ : State fun (x : ↑(~ )) => Γ x} (φ : State Γα) :
        fix φ σ₀ σ = φ fun (x : 𝒱) => σ x,
        @[simp]
        theorem pGCL.Exp.fix_compl_empty {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {α : Sort u_3} {σ₀ : State Γ} {σ : State fun (x : ↑(~ ~ )) => Γ x} (φ : State Γα) :
        fix φ (~ ) σ₀ σ = φ σ₀
        @[simp]
        theorem pGCL.Exp.fix_compl_empty_eq {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {α : Sort u_3} (φ ψ : State Γα) :
        fix φ (~ ) = fix ψ (~ ) φ = ψ
        noncomputable def pGCL.ProbExp.fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} (X : ProbExp Γ) (S : Set 𝒱) (σ₀ : State Γ) :
        ProbExp fun (x : ↑(~ S)) => Γ x
        Equations
        Instances For
          @[simp]
          theorem pGCL.ProbExp.fix_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {S : Set 𝒱} {σ₀ : State Γ} {σ : State fun (x : ↑(~ S)) => Γ x} {φ : ProbExp Γ} :
          (φ.fix S σ₀) σ = φ (σ₀.cofix σ)
          def pGCL.mods {𝒱 : Type u_1} {Γ : 𝒱Type u_2} :
          pGCL ΓSet 𝒱
          Equations
          Instances For
            noncomputable def pGCL.fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} (C : pGCL Γ) (S : Set 𝒱) (σ₀ : State Γ) :
            pGCL fun (x : ↑(~ S)) => Γ x
            Equations
            Instances For
              @[simp]
              theorem pGCL.Exp.fix_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {α : Sort u_3} {S : Set 𝒱} {σ₀ : State Γ} {σ : State fun (x : ↑(~ S)) => Γ x} {φ : State Γα} :
              fix φ S σ₀ σ = φ (σ₀.cofix σ)
              @[simp]
              theorem pGCL.Exp.zero_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} :
              fix 0 = 0
              @[simp]
              theorem pGCL.Exp.top_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} :
              @[simp]
              theorem pGCL.Exp.iSup_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {α : Sort u_3} {S : Set 𝒱} {σ₀ : State Γ} {σ : State fun (x : ↑(~ S)) => Γ x} {X : αState ΓENNReal} :
              fix (⨆ (n : α), X n) S σ₀ σ = ⨆ (n : α), fix (X n) S σ₀ σ
              @[simp]
              theorem pGCL.Exp.iInf_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} {α : Sort u_3} {S : Set 𝒱} {σ₀ : State Γ} {σ : State fun (x : ↑(~ S)) => Γ x} {X : αState ΓENNReal} :
              fix (⨅ (n : α), X n) S σ₀ σ = ⨅ (n : α), fix (X n) S σ₀ σ
              @[simp]
              theorem pGCL.Exp.subst_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {α : Type u_3} {σ : State Γ} {φ : State Γα} {x : 𝒱} {e : State ΓΓ x} {S : Set 𝒱} (hx : xS) :
              fix (φ[x e]) S σ = (fix φ S σ)[x, hx fix e S σ]
              theorem pGCL.wp_le_of_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {O : Optimization} {σ₀ : State Γ} (C : pGCL Γ) (φ : State ΓENNReal) (S : Set 𝒱) (X : State ΓENNReal) :
              Exp.fix (wp[O]⟦@C φ) S σ₀ Exp.fix X S σ₀wp[O]⟦@C φ σ₀ X σ₀
              theorem pGCL.le_wlp_of_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ₀ : State Γ} {O : Optimization} (C : pGCL Γ) (φ : State ΓENNReal) (S : Set 𝒱) (X : State ΓENNReal) :
              Exp.fix X S σ₀ Exp.fix (wlp[O]⟦@C φ) S σ₀X σ₀ wlp[O]⟦@C φ σ₀
              theorem pGCL.le_wlp'_of_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ₀ : State Γ} {O : Optimization} (C : pGCL Γ) (φ : ProbExp Γ) (S : Set 𝒱) (X : ProbExp Γ) :
              X.fix S σ₀ (wlp'[O]⟦@C φ).fix S σ₀X σ₀ (wlp'[O]⟦@C φ) σ₀
              theorem pGCL.wp_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {O : Optimization} {σ₀ : State Γ} (C : pGCL Γ) (φ : State ΓENNReal) (S : Set 𝒱) (hS : C.mods ~ S) :
              Exp.fix (wp[O]⟦@C φ) S σ₀ = wp[O]⟦@(C.fix S σ₀) (Exp.fix φ S σ₀)
              theorem pGCL.wlp_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {O : Optimization} {σ₀ : State Γ} (C : pGCL Γ) (φ : State ΓENNReal) (S : Set 𝒱) (hS : C.mods ~ S) :
              Exp.fix (wlp[O]⟦@C φ) S σ₀ = wlp[O]⟦@(C.fix S σ₀) (Exp.fix φ S σ₀)
              theorem pGCL.wlp'_fix_apply {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {O : Optimization} {σ₀ : State Γ} (C : pGCL Γ) (φ : ProbExp Γ) (S : Set 𝒱) (hS : C.mods ~ S) (σ : State fun (x : ↑(~ S)) => Γ x) :
              Exp.fix (⇑(wlp'[O]⟦@C φ)) S σ₀ σ = (wlp'[O]⟦@(C.fix S σ₀) Exp.fix (⇑φ) S σ₀, ) σ
              theorem pGCL.wlp'_fix_apply' {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {O : Optimization} {σ₀ : State Γ} (C : pGCL Γ) (φ : State ΓENNReal) ( : φ 1) (S : Set 𝒱) (hS : C.mods ~ S) (σ : State fun (x : ↑(~ S)) => Γ x) :
              Exp.fix (⇑(wlp'[O]⟦@C φ, )) S σ₀ σ = (wlp'[O]⟦@(C.fix S σ₀) Exp.fix φ S σ₀, ) σ
              theorem pGCL.wlp'_fix {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {O : Optimization} {σ₀ : State Γ} (C : pGCL Γ) (φ : ProbExp Γ) (S : Set 𝒱) (hS : C.mods ~ S) :
              (wlp'[O]⟦@C φ).fix S σ₀ = wlp'[O]⟦@(C.fix S σ₀) (φ.fix S σ₀)