@[implicit_reducible]
instance
Substitution.instHashMap
{ι : Type u_1}
{β : Type u_2}
[BEq ι]
[Hashable ι]
:
Substitution (Std.HashMap ι β) fun (x : ι) => β
Equations
- Substitution.instHashMap = { subst := fun (map : Std.HashMap ι β) => Sigma.uncurry map.insert }
def
Substitution.substs
{α : Type u_1}
{ι✝ : outParam (Type u_2)}
{β : ι✝ → Type u_3}
[Substitution α β]
(m : α)
(xs : List (Sigma β))
:
α
Equations
- m[..xs] = List.foldr (fun (b : Sigma β) (acc : α) => Substitution.subst acc b) m xs
Instances For
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
- 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
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Substitution.substs_nil
{α : Type u_1}
{ι : Type u_2}
{β : ι → Type u_3}
[Substitution α β]
{m : α}
:
theorem
Substitution.substs_of_binary
{α₁ : Type u_4}
{α₂ : Type u_5}
{α₃ : Type u_6}
{ι : Type u_7}
{β : ι → Type u_8}
[Substitution α₁ β]
[Substitution α₂ β]
[Substitution α₃ β]
{m : α₁}
{n : α₂}
{xs : List (Sigma β)}
{f : α₁ → α₂ → α₃}
(h : ∀ (m : α₁) (n : α₂) (b : Sigma β), (f m n)[..[b]] = f (m[..[b]]) (n[..[b]]))
:
def
Substitution.IsIndepPair
{α : Type u_1}
{ι : Type u_2}
{β : ι → Type u_3}
[Substitution α β]
(m : α)
(x : ι)
:
Instances For
class
Substitution.IndepPair
{α : Type u_1}
{ι : Type u_2}
{β : ι → Type u_3}
[Substitution α β]
(m : α)
(x : ι)
:
- is_indep : IsIndepPair m x
Instances
theorem
Substitution.indepPair_iff
{α : Type u_1}
{ι : Type u_2}
{β : ι → Type u_3}
[Substitution α β]
(m : α)
(x : ι)
:
@[simp]
theorem
Substitution.indep_pair
{α : Type u_1}
{ι : Type u_2}
{β : ι → Type u_3}
[Substitution α β]
{m : α}
{x : ι}
(h : IsIndepPair m x)
{v : β x}
:
- types : 𝒱 → Type u_5
Instances For
@[implicit_reducible]
instance
Substitution.Example.instMemTypes
{𝒱 : Type u_4}
{Γ : Context 𝒱}
[DecidableEq 𝒱]
:
Substitution Γ.Mem Γ.types
Equations
- Substitution.Example.instMemTypes = { subst := fun (σ : Γ.Mem) => Sigma.uncurry fun (x : 𝒱) (e : Γ.types x) (y : 𝒱) => if h : x = y then h ▸ e else σ y }
@[implicit_reducible]
instance
Substitution.Example.instForallMemForallTypes
{𝒱 : Type u_4}
{α : Type u_5}
{Γ : Context 𝒱}
[DecidableEq 𝒱]
:
Substitution (Γ.Mem → α) fun (x : 𝒱) => Γ.Mem → Γ.types x