Documentation

LeanSubst.IsRen

Instances
    @[simp]
    theorem LeanSubst.HasSimpleVar.smap_eq {T : Type u} [SubstMap T] [HasSimpleVar T] {lf : Subst.Lift T} {f : NatSubst.Action T} {i : Nat} :
    SubstMap.smap lf f (var i) = match f i with | Subst.Action.re k => var k | Subst.Action.su t => t
    @[simp]
    theorem LeanSubst.HasSimpleVar.ren {T : Type u} [SubstMap T] [HasSimpleVar T] {k : Nat} (r : Ren) :
    r.apply (var k) = var (r k)
    @[simp]
    theorem LeanSubst.HasSimpleVar.sub {T : Type u} [SubstMap T] [HasSimpleVar T] {i : Nat} (σ : Subst T) :
    var i[σ] = match σ i with | Subst.Action.re k => var k | Subst.Action.su t => t
    theorem LeanSubst.HasSimpleVar.re {T : Type u} [SubstMap T] [HasSimpleVar T] {i k : Nat} {σ : Subst T} :
    σ i = #kvar i[σ] = var k
    theorem LeanSubst.HasSimpleVar.su {T : Type u} [SubstMap T] [HasSimpleVar T] {i : Nat} {t : T} {σ : Subst T} :
    σ i = %tvar i[σ] = t
    def LeanSubst.IsRen {T : Type u} [SubstMap T] [HasSimpleVar T] (σ : Subst T) :
    Equations
    Instances For
      theorem LeanSubst.IsRen.var_forced {T : Type u} [SubstMap T] [HasSimpleVar T] {i : Nat} {t : T} {σ : Subst T} :
      IsRen σσ i = %t (k : Nat), t = HasSimpleVar.var k
      theorem LeanSubst.IsRen.to {T : Type u} [SubstMap T] [HasSimpleVar T] (r : Ren) :
      theorem LeanSubst.IsRen.cons_re {T : Type u} [SubstMap T] [HasSimpleVar T] {σ : Subst T} (k : Nat) :
      IsRen σIsRen (#k::σ)
      theorem LeanSubst.IsRen.cons_su {T : Type u} [SubstMap T] [HasSimpleVar T] {σ : Subst T} (k : Nat) :
      theorem LeanSubst.IsRen.lift {T : Type u} [SubstMap T] [HasSimpleVar T] {σ : Subst T} :
      IsRen σIsRen σ.lift
      theorem LeanSubst.IsRen.compose {T : Type u} [SubstMap T] [HasSimpleVar T] {σ τ : Subst T} :
      IsRen σIsRen τIsRen (σ τ)