@[simp]
theorem
Distribution.map_toExpr_apply
{σ : pGCL.State HeyLo.Ty.Γ}
(x : HeyLo.Ident)
(μ : HeyLo.Distribution x.type)
(f : HeyLo x.type → HeyLo HeyLo.Ty.ENNReal)
:
def
Substitution.applied
(σ : pGCL.State fun (x : HeyLo.Ident) => x.type.lit)
(xs : List ((v : HeyLo.Ident) × (pGCL.State HeyLo.Ty.Γ → v.type.lit)))
:
pGCL.State fun (x : HeyLo.Ident) => x.type.lit
Equations
- Substitution.applied σ [] = σ
- Substitution.applied σ (x :: xs_2) = Substitution.applied (σ[x.fst ↦ x.snd σ]) xs_2
Instances For
theorem
BExpr.subst_applied
{b : pGCL.BExpr fun (x : HeyLo.Ident) => x.type.lit}
{xs : List ((v : HeyLo.Ident) × (pGCL.State HeyLo.Ty.Γ → v.type.lit))}
:
theorem
BExpr.subst_apply
{σ : pGCL.State fun (x : HeyLo.Ident) => x.type.lit}
{b : pGCL.BExpr fun (x : HeyLo.Ident) => x.type.lit}
{xs : List ((v : HeyLo.Ident) × (pGCL.State HeyLo.Ty.Γ → v.type.lit))}
:
theorem
Exp.subst_applied
{α : Type u_1}
{b : pGCL.State HeyLo.Ty.Γ → α}
{xs : List ((v : HeyLo.Ident) × (pGCL.State HeyLo.Ty.Γ → v.type.lit))}
:
theorem
Exp.subst_apply
{α : Type u_1}
{σ : pGCL.State HeyLo.Ty.Γ}
{b : pGCL.State HeyLo.Ty.Γ → α}
{xs : List ((v : HeyLo.Ident) × (pGCL.State HeyLo.Ty.Γ → v.type.lit))}
:
@[simp]
def
HeyVL.Subs.help
{xs : List HeyLo.Ident}
{hn : xs.Nodup}
(S : Subs xs hn)
:
List ((v : HeyLo.Ident) × (pGCL.State HeyLo.Ty.Γ → v.type.lit))
Equations
- S.help = List.map (fun (a : (x : HeyLo.Ident) × x.type.lit) => ⟨a.fst, fun (x : pGCL.State HeyLo.Ty.Γ) => a.snd⟩) S.values
Instances For
def
HeyVL.Subs.help'
{xs : List HeyLo.Ident}
{hn : xs.Nodup}
(S : Subs xs hn)
:
List ((v : HeyLo.Ident) × v.type.lit)
Instances For
@[simp]
@[simp]
theorem
HeyVL.Subs.help_cons
{x : HeyLo.Ident}
{xs : List HeyLo.Ident}
{hn : (x :: xs).Nodup}
(S : Subs (x :: xs) hn)
:
def
HeyVL.Subs.get
{xs : List HeyLo.Ident}
{hn : xs.Nodup}
(S : Subs xs hn)
(x : HeyLo.Ident)
(hx : x ∈ xs)
:
Equations
Instances For
@[simp]
theorem
HeyVL.Subs.tail_get
{x : HeyLo.Ident}
{xs : List HeyLo.Ident}
{hn : (x :: xs).Nodup}
(S : Subs (x :: xs) hn)
(y : HeyLo.Ident)
(hy : y ∈ xs)
:
theorem
HeyVL.Subs.tail_1_eq_get
{x : HeyLo.Ident}
{xs : List HeyLo.Ident}
{hn : (x :: xs).Nodup}
(S : Subs (x :: xs) hn)
:
@[simp]
theorem
HeyVL.Subs.subst_help'_apply
{xs : List HeyLo.Ident}
{hn : xs.Nodup}
{y : HeyLo.Ident}
(S : Subs xs hn)
(σ : pGCL.State fun (x : HeyLo.Ident) => x.type.lit)
:
@[simp]
theorem
Exp.substs_help_apply
{α : Type u_1}
{xs : List HeyLo.Ident}
{hxs : xs.Nodup}
{σ : pGCL.State HeyLo.Ty.Γ}
(m : pGCL.State HeyLo.Ty.Γ → α)
(Ξ : HeyVL.Subs xs hxs)
:
@[simp]
theorem
BExpr.substs_help_apply
{xs : List HeyLo.Ident}
{hxs : xs.Nodup}
{σ : pGCL.State fun (x : HeyLo.Ident) => x.type.lit}
(m : pGCL.BExpr fun (x : HeyLo.Ident) => x.type.lit)
(Ξ : HeyVL.Subs xs hxs)
:
theorem
Substitution.applied_subst
{x : HeyLo.Ident}
(σ : pGCL.State fun (x : HeyLo.Ident) => x.type.lit)
(xs : List ((v : HeyLo.Ident) × (pGCL.State HeyLo.Ty.Γ → v.type.lit)))
(v : pGCL.State HeyLo.Ty.Γ → x.type.lit)
:
def
HeyVL.Subs.of
(xs : List HeyLo.Ident)
(hn : xs.Nodup)
(σ : pGCL.State fun (x : HeyLo.Ident) => x.type.lit)
:
Subs xs hn
Equations
- HeyVL.Subs.of xs hn σ = { values := List.map (fun (x : HeyLo.Ident) => ⟨x, σ x⟩) xs, prop := ⋯, prop' := ⋯ }
Instances For
@[simp]
theorem
HeyVL.Subs.of_get
(xs : List HeyLo.Ident)
(hn : xs.Nodup)
(σ : pGCL.State fun (x : HeyLo.Ident) => x.type.lit)
{y : HeyLo.Ident}
{hy : y ∈ xs}
:
@[simp]