@[reducible]
instance
LeanSubst.instSubstMapConsNilOfSubstMapAll
{T : Type u2}
{V : List (Type u2)}
[i : SubstMapAll (T :: V)]
:
Equations
@[reducible]
instance
LeanSubst.instSubstMapOfSubstMapAllCons
{T : Type u2}
{V : List (Type u2)}
[i : SubstMapAll (T :: V)]
:
SubstMap T V
Equations
@[reducible]
instance
LeanSubst.instSubstSuffixOfSubstMapAllCons
{T : Type u2}
{V : List (Type u2)}
[i : SubstMapAll (T :: V)]
:
SubstSuffix T V
Equations
@[reducible]
instance
LeanSubst.instSubstMapAllOfCons
{T : Type u2}
{V : List (Type u2)}
[i : SubstMapAll (T :: V)]
:
Equations
def
LeanSubst.Action.rmap1
{T : Type u2}
{V : List (Type u2)}
[RenMap T (T :: V)]
(r : RenVec (T :: V))
:
Equations
- LeanSubst.Action.rmap1 r (LeanSubst.re x_1) = LeanSubst.re (r.fst.act x_1)
- LeanSubst.Action.rmap1 r (LeanSubst.su t) = LeanSubst.su t⟨r,⟩
Instances For
@[instance_reducible]
Equations
- LeanSubst.instRenMapActionCons = { rmap := fun (v : LeanSubst.RenVec (T :: V)) => LeanSubst.Action.rmap1 v }
Equations
- LeanSubst.Action.rmap0 r (LeanSubst.re x_1) = LeanSubst.re x_1
- LeanSubst.Action.rmap0 r (LeanSubst.su t) = LeanSubst.su t⟨r,⟩
Instances For
def
LeanSubst.Action.smap1
{T : Type u2}
{V : List (Type u2)}
[SubstMap T (T :: V)]
(σ : SubstVec (T :: V))
:
Equations
- LeanSubst.Action.smap1 σ (LeanSubst.re x_1) = σ.fst.act x_1
- LeanSubst.Action.smap1 σ (LeanSubst.su t) = LeanSubst.su t[σ,]
Instances For
@[instance_reducible]
instance
LeanSubst.instSubstMapActionCons
{T : Type u2}
{V : List (Type u2)}
[SubstMap T (T :: V)]
:
Equations
- LeanSubst.instSubstMapActionCons = { smap := fun (v : LeanSubst.SubstVec (T :: V)) => LeanSubst.Action.smap1 v }
Equations
- LeanSubst.Action.smap0 σ (LeanSubst.re x_1) = LeanSubst.re x_1
- LeanSubst.Action.smap0 σ (LeanSubst.su t) = LeanSubst.su t[σ,]
Instances For
@[instance_reducible]
instance
LeanSubst.instSubstMapActionOfSubstSuffix
{S : Type u1}
{V : List (Type u2)}
[SubstMap S V]
[SubstSuffix S V]
:
Equations
@[instance_reducible]
instance
LeanSubst.instSubstMapSubstOfSubstSuffix
{S : Type u1}
{V : List (Type u2)}
[SubstMap S V]
[SubstSuffix S V]
:
Equations
Equations
- LeanSubst.«term𝐫0» = Lean.ParserDescr.node `LeanSubst.«term𝐫0» 1024 (Lean.ParserDescr.symbol "𝐫0")
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible]
Equations
Instances For
Equations
- LeanSubst.«term𝐬0» = Lean.ParserDescr.node `LeanSubst.«term𝐬0» 1024 (Lean.ParserDescr.symbol "𝐬0")
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible]
Equations
Instances For
Equations
- LeanSubst.«term𝐫1» = Lean.ParserDescr.node `LeanSubst.«term𝐫1» 1024 (Lean.ParserDescr.symbol "𝐫1")
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- LeanSubst.«term𝐬1» = Lean.ParserDescr.node `LeanSubst.«term𝐬1» 1024 (Lean.ParserDescr.symbol "𝐬1")
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
Equations
- LeanSubst.Subst.pred T = { inner := fun (x : Nat) => LeanSubst.re (x - 1) }
Instances For
Equations
- LeanSubst.Subst.add T k = { inner := fun (x : Nat) => LeanSubst.re (x + k) }
Instances For
Equations
- LeanSubst.Subst.sub T k = { inner := fun (x : Nat) => LeanSubst.re (x - k) }
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
- LeanSubst.Ren.append [] x✝ = x✝
- LeanSubst.Ren.append (hd :: tl) x✝ = hd :: LeanSubst.Ren.append tl x✝
Instances For
@[instance_reducible]
Equations
- LeanSubst.instHAppendListNatRen = { hAppend := LeanSubst.Ren.append }
Equations
- LeanSubst.Subst.append [] x✝ = x✝
- LeanSubst.Subst.append (hd :: tl) x✝ = hd :: LeanSubst.Subst.append tl x✝
Instances For
Equations
- LeanSubst.Subst.append_ren [] x✝ = x✝
- LeanSubst.Subst.append_ren (hd :: tl) x✝ = LeanSubst.re hd :: LeanSubst.Subst.append_ren tl x✝
Instances For
@[instance_reducible]
Equations
@[instance_reducible]
Equations
- LeanSubst.instAndThenRen = { andThen := fun (r : LeanSubst.Ren T) (f : Unit → LeanSubst.Ren T) => r.compose (f ()) }
@[instance_reducible]
Equations
- LeanSubst.instAndThenRenVec = { andThen := fun (r : LeanSubst.RenVec V) (f : Unit → LeanSubst.RenVec V) => r.compose (f ()) }
@[simp]
@[instance_reducible]
Equations
- LeanSubst.instAndThenSubstOfSubstMapConsNil = { andThen := fun (σ : LeanSubst.Subst T) (f : Unit → LeanSubst.Subst T) => σ.compose (f ()) }
@[instance_reducible]
Equations
- LeanSubst.instAndThenSubstVecOfSubstMapAll = { andThen := fun (σ : LeanSubst.SubstVec V) (f : Unit → LeanSubst.SubstVec V) => σ.compose (f ()) }
Equations
- x_5.compose_simple x_6 = LeanSubst.SubstVec.nil
- LeanSubst.SubstVec.compose_simple (v1, v1s) (v2, v2s) = (v1 >> v2, v1s.compose_simple v2s)
Instances For
@[instance_reducible]
instance
LeanSubst.instHShiftRightSubstVecOfSubstMapAll
{V : List (Type u2)}
[SubstMapAll V]
:
HShiftRight (SubstVec V) (SubstVec V) (SubstVec V)
Equations
@[instance_reducible]
Equations
- LeanSubst.instHAndThenRenSubst = { hAndThen := fun (r : LeanSubst.Ren T) (f : Unit → LeanSubst.Subst T) => LeanSubst.Subst.compose_ren_left r (f ()) }
Equations
- LeanSubst.SubstVec.compose_ren_left x_3 x_4 = LeanSubst.SubstVec.nil
- LeanSubst.SubstVec.compose_ren_left (v1, v1s) (v2, v2s) = (v1 >> v2, LeanSubst.SubstVec.compose_ren_left v1s v2s)
Instances For
@[instance_reducible]
Equations
- LeanSubst.instHAndThenRenVecSubstVec = { hAndThen := fun (r : LeanSubst.RenVec V) (f : Unit → LeanSubst.SubstVec V) => LeanSubst.SubstVec.compose_ren_left r (f ()) }
@[instance_reducible]
Equations
- LeanSubst.instHAndThenSubstRenOfRenMapConsNil = { hAndThen := fun (σ : LeanSubst.Subst T) (f : Unit → LeanSubst.Ren T) => σ.compose_ren_right (f ()) }
Equations
- x_5.compose_ren_right_simple x_6 = LeanSubst.SubstVec.nil
- LeanSubst.SubstVec.compose_ren_right_simple (σ, σs) (fst, rs) = (σ >> fst, σs.compose_ren_right_simple rs)
Instances For
@[instance_reducible]
instance
LeanSubst.instHShiftRightSubstVecRenVecOfRenMapAll
{V : List (Type u2)}
[RenMapAll V]
:
HShiftRight (SubstVec V) (RenVec V) (SubstVec V)
Equations
Equations
- x_5.compose_ren_right x_6 = LeanSubst.SubstVec.nil
- LeanSubst.SubstVec.compose_ren_right (σ, σs) (fst, rs) = (σ⟨rs,⟩ >> fst, σs.compose_ren_right rs)
Instances For
@[instance_reducible]
Equations
- LeanSubst.instHAndThenSubstVecRenVecOfRenMapAll = { hAndThen := fun (σ : LeanSubst.SubstVec V) (f : Unit → LeanSubst.RenVec V) => σ.compose_ren_right (f ()) }
@[simp]
@[simp]
Equations
- LeanSubst.SubstVec.lift x✝ x_6 = LeanSubst.SubstVec.nil
- LeanSubst.SubstVec.lift [] (t, ts) = (t, ts)
- LeanSubst.SubstVec.lift (k :: ks) (t, ts) = (t.lift k, LeanSubst.SubstVec.lift ks ts)
Instances For
@[instance_reducible]
instance
LeanSubst.instSubstActionListNatAction
{T : Type u2}
:
SubstAction T (List Nat) (List (Action T))
Equations
Equations
- LeanSubst.«term_.._» = Lean.ParserDescr.trailingNode `LeanSubst.«term_.._» 90 91 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "..") (Lean.ParserDescr.cat `term 91))
Instances For
def
LeanSubst.SubstVec.ren
(S : Type u2)
(T : List (Type u2))
[RenMap S T]
[RenSuffix S T]
(r : RenVec T)
{V : List (Type u2)}
(x : Nat)
(_h : V[x]? = some S := by grind)
:
Equations
- One or more equations did not get rendered due to their size.
- LeanSubst.SubstVec.ren S T r x x_1 σ = σ
- LeanSubst.SubstVec.ren S T r x_4.succ h (σ, σs) = (σ, LeanSubst.SubstVec.ren S T r x_4 h σs)