instance
LeanSubst.instRenMapEmptyAction
{S : Type u1}
[RenMap S []]
[RenSuffix S []]
[RenMapEmpty S]
:
RenMapEmpty (Action S)
instance
LeanSubst.instRenMapVecDefAction
{T : Type u2}
{V : List (Type u2)}
[RenMap T [T]]
[RenMap T (T :: V)]
[RenMap T V]
[RenSuffix T V]
[RenMapVecDef T T V]
:
RenMapVecDef (Action T) T V
instance
LeanSubst.instRenMapVecDefSubst
{T : Type u2}
{V : List (Type u2)}
[RenMap T [T]]
[RenMap T (T :: V)]
[RenMap T V]
[RenSuffix T V]
[RenMapVecDef T T V]
:
RenMapVecDef (Subst T) T V
instance
LeanSubst.instRenMapEmptySubst
{S : Type u1}
[RenMap S []]
[RenSuffix S []]
[RenMapEmpty S]
:
RenMapEmpty (Subst S)
instance
LeanSubst.instRenMapComposeActionCons
{T : Type u2}
{V : List (Type u2)}
[RenMap T (T :: V)]
[RenMapCompose T (T :: V)]
:
RenMapCompose (Action T) (T :: V)
instance
LeanSubst.instRenMapComposeAction
{S : Type u1}
{V : List (Type u2)}
[RenMap S V]
[RenSuffix S V]
[RenMapCompose S V]
:
RenMapCompose (Action S) V
instance
LeanSubst.instRenMapComposeSubstCons
{T : Type u2}
{V : List (Type u2)}
[RenMap T (T :: V)]
[RenMapCompose T (T :: V)]
:
RenMapCompose (Subst T) (T :: V)
instance
LeanSubst.instRenMapComposeSubst
{S : Type u1}
{V : List (Type u2)}
[RenMap S V]
[RenSuffix S V]
[RenMapCompose S V]
:
RenMapCompose (Subst S) V
@[simp]
theorem
LeanSubst.Subst.apply_id
{S : Type u1}
{V : List (Type u2)}
[SubstMap S V]
[SubstMapId S V]
{s : S}
:
instance
LeanSubst.instSubstMapEmptyAction
{S : Type u1}
[SubstMap S []]
[SubstSuffix S []]
[SubstMapEmpty S]
:
SubstMapEmpty (Action S)
instance
LeanSubst.instSubstMapVecDefAction
{T : Type u2}
{V : List (Type u2)}
[SubstMap T [T]]
[SubstMap T (T :: V)]
[SubstMap T V]
[SubstSuffix T V]
[SubstMapVecDef T T V]
:
SubstMapVecDef (Action T) T V
instance
LeanSubst.instSubstMapVecDefSubst
{T : Type u2}
{V : List (Type u2)}
[SubstMap T [T]]
[SubstMap T (T :: V)]
[SubstMap T V]
[SubstSuffix T V]
[SubstMapVecDef T T V]
:
SubstMapVecDef (Subst T) T V
instance
LeanSubst.instSubstMapIdActionCons
{T : Type u2}
{V : List (Type u2)}
[SubstMap T (T :: V)]
[SubstMapId T (T :: V)]
:
SubstMapId (Action T) (T :: V)
instance
LeanSubst.instSubstMapIdAction
{S : Type u1}
{V : List (Type u2)}
[SubstMap S V]
[SubstSuffix S V]
[SubstMapId S V]
:
SubstMapId (Action S) V
instance
LeanSubst.instSubstMapEmptySubst
{S : Type u1}
[SubstMap S []]
[SubstSuffix S []]
[SubstMapEmpty S]
:
SubstMapEmpty (Subst S)
instance
LeanSubst.instSubstMapIdSubstCons
{T : Type u2}
{V : List (Type u2)}
[SubstMap T (T :: V)]
[SubstMapId T (T :: V)]
:
SubstMapId (Subst T) (T :: V)
instance
LeanSubst.instSubstMapIdSubst
{S : Type u1}
{V : List (Type u2)}
[SubstMap S V]
[SubstSuffix S V]
[SubstMapId S V]
:
SubstMapId (Subst S) V
instance
LeanSubst.instSubstMapRenComposeLeftActionCons
{T : Type u2}
{V : List (Type u2)}
[RenMap T (T :: V)]
[SubstMap T (T :: V)]
[SubstMapRenComposeLeft T (T :: V)]
:
SubstMapRenComposeLeft (Action T) (T :: V)
instance
LeanSubst.instSubstMapRenComposeLeftAction
{S : Type u1}
{V : List (Type u2)}
[RenMap S V]
[SubstMap S V]
[RenSuffix S V]
[SubstSuffix S V]
[SubstMapRenComposeLeft S V]
:
SubstMapRenComposeLeft (Action S) V
instance
LeanSubst.instSubstMapRenComposeRightActionConsOfRenMapVecDef
{T : Type u2}
{V : List (Type u2)}
[RenMap T (T :: V)]
[RenMapAll (T :: V)]
[SubstMap T (T :: V)]
[RenMapVecDef T T V]
[SubstMapRenComposeRight T (T :: V)]
:
SubstMapRenComposeRight (Action T) (T :: V)
instance
LeanSubst.instSubstMapRenComposeRightAction
{S : Type u1}
{V : List (Type u2)}
[RenMap S V]
[RenMapAll V]
[SubstMap S V]
[RenSuffix S V]
[SubstSuffix S V]
[SubstMapRenComposeRight S V]
:
instance
LeanSubst.instSubstMapComposeActionConsOfSubstMapVecDef
{T : Type u2}
{V : List (Type u2)}
[SubstMap T (T :: V)]
[i : SubstMapAll (T :: V)]
[SubstMapCompose T (T :: V)]
[SubstMapVecDef T T V]
:
SubstMapCompose (Action T) (T :: V)
instance
LeanSubst.instSubstMapComposeAction
{S : Type u1}
{V : List (Type u2)}
[SubstMap S V]
[SubstSuffix S V]
[SubstMapAll V]
[SubstMapCompose S V]
:
SubstMapCompose (Action S) V
instance
LeanSubst.instSubstMapRenComposeLeftSubstCons
{T : Type u2}
{V : List (Type u2)}
[RenMap T (T :: V)]
[SubstMap T (T :: V)]
[SubstMapRenComposeLeft T (T :: V)]
:
SubstMapRenComposeLeft (Subst T) (T :: V)
instance
LeanSubst.instSubstMapRenComposeLeftSubst
{S : Type u1}
{V : List (Type u2)}
[RenMap S V]
[SubstMap S V]
[RenSuffix S V]
[SubstSuffix S V]
[SubstMapRenComposeLeft S V]
:
SubstMapRenComposeLeft (Subst S) V
instance
LeanSubst.instSubstMapRenComposeRightSubstConsOfRenMapVecDef
{T : Type u2}
{V : List (Type u2)}
[RenMap T (T :: V)]
[inst : RenMapAll (T :: V)]
[SubstMap T (T :: V)]
[RenMapVecDef T T V]
[SubstMapRenComposeRight T (T :: V)]
:
SubstMapRenComposeRight (Subst T) (T :: V)
instance
LeanSubst.instSubstMapRenComposeRightSubst
{S : Type u1}
{V : List (Type u2)}
[RenMap S V]
[RenMapAll V]
[SubstMap S V]
[RenSuffix S V]
[SubstSuffix S V]
[SubstMapRenComposeRight S V]
:
SubstMapRenComposeRight (Subst S) V
instance
LeanSubst.instSubstMapComposeSubstConsOfSubstMapVecDef
{T : Type u2}
{V : List (Type u2)}
[SubstMap T (T :: V)]
[SubstMapAll (T :: V)]
[SubstMapCompose T (T :: V)]
[SubstMapVecDef T T V]
:
SubstMapCompose (Subst T) (T :: V)
instance
LeanSubst.instSubstMapComposeSubst
{S : Type u1}
{V : List (Type u2)}
[SubstMap S V]
[SubstSuffix S V]
[SubstMapAll V]
[SubstMapCompose S V]
:
SubstMapCompose (Subst S) V