Documentation

LeanStlc.Term

inductive Ty :
Instances For
    def Ty.repr (a : Ty) (p : Nat) :
    Equations
    Instances For
      instance instReprTy :
      Equations
      inductive Term :
      Instances For
        def Term.repr (a : Term) (p : Nat) :
        Equations
        Instances For
          Equations
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            Instances For
              @[simp]
              theorem Term.from_action_id {n : Nat} :
              (+0 n) = #n
              @[simp]
              theorem Term.from_action_succ {n : Nat} :
              (+1 n) = #(n + 1)
              @[simp]
              theorem Term.from_acton_re {n : Nat} :
              (LeanSubst.re n) = #n
              @[simp]
              theorem Term.from_action_su {t : Term} :
              (LeanSubst.su t) = t
              Equations
              Instances For
                @[simp]
                theorem subst_var {σ : LeanSubst.Subst Term} {x : Nat} :
                (#x)[σ] = (σ x)
                @[simp]
                theorem subst_app {σ : LeanSubst.Subst Term} {t1 t2 : Term} :
                (t1 :@ t2)[σ] = t1[σ] :@ t2[σ]
                @[simp]
                theorem subst_lam {σ : LeanSubst.Subst Term} {A : Ty} {t : Term} :
                (:λ[A] t)[σ] = :λ[A] t[σ.lift]
                @[simp]
                theorem Term.from_action_compose {x : Nat} {σ τ : LeanSubst.Subst Term} :
                (↑(σ x))[τ] = ((σ τ) x)
                theorem apply_id {t : Term} :
                t[+0] = t
                theorem apply_stable (r : LeanSubst.Ren) (σ : LeanSubst.Subst Term) :
                r = σr.apply = σ.apply
                theorem apply_compose {s : Term} {σ τ : LeanSubst.Subst Term} :
                s[σ][τ] = s[σ τ]
                inductive Neutral :
                Instances For
                  theorem to_ren_is_var {x : Nat} {t : Term} {r : LeanSubst.Ren} :
                  t = (r x) (y : Nat), t = #y
                  theorem ren_subst_apply_eq_lift {r : LeanSubst.Ren} {σ : LeanSubst.Subst Term} :
                  (∀ (i x : Nat), r i = x(σ i) = #x σ i = LeanSubst.re x)∀ (i x : Nat), r.lift i = x(σ.lift i) = #x σ.lift i = LeanSubst.re x
                  theorem ren_subst_apply_eq {t : Term} {r : LeanSubst.Ren} {σ : LeanSubst.Subst Term} :
                  (∀ (i x : Nat), r i = x(σ i) = #x σ i = LeanSubst.re x)t[r] = t[σ]