Documentation

LeanStlc.Reduction

inductive Red :
Term → Term → Prop
Instances For
    inductive ParRed :
    Term → Term → Prop
    Instances For
      theorem ParRed.refl {t : Term} :
      t ~p> t
      theorem ParRed.subst {t t' : Term} (σ : LeanSubst.Subst Term) :
      t ~p> t' → t[σ] ~p> t'[σ]
      theorem ParRed.subst_action {x : Nat} {σ σ' : LeanSubst.Subst Term} (r : LeanSubst.Ren) :
      LeanSubst.ActionRed ParRed (σ x) (σ' x) → LeanSubst.ActionRed ParRed ((σ ∘ ↑r) x) ((σ' ∘ ↑r) x)
      theorem ParRed.subst_red_lift {σ σ' : LeanSubst.Subst Term} :
      (∀ (x : Nat), LeanSubst.ActionRed ParRed (σ x) (σ' x)) → ∀ (x : Nat), LeanSubst.ActionRed ParRed (σ.lift x) (σ'.lift x)
      theorem ParRed.hsubst {t t' : Term} {σ σ' : LeanSubst.Subst Term} :
      (∀ (x : Nat), LeanSubst.ActionRed ParRed (σ x) (σ' x)) → t ~p> t' → t[σ] ~p> t'[σ']
      theorem ParRed.triangle {t s : Term} :
      t ~p> s → s ~p> complete t
      theorem Red.subst {t t' : Term} (σ : LeanSubst.Subst Term) :
      t ~> t' → t[σ] ~> t'[σ]
      theorem Red.subst_action {x : Nat} {σ σ' : LeanSubst.Subst Term} (r : LeanSubst.Ren) :
      LeanSubst.ActionRed Red (σ x) (σ' x) → LeanSubst.ActionRed Red ((σ ∘ ↑r) x) ((σ' ∘ ↑r) x)
      theorem Red.subst_red_lift {σ σ' : LeanSubst.Subst Term} :
      (∀ (x : Nat), LeanSubst.ActionRed Red (σ x) (σ' x)) → ∀ (x : Nat), LeanSubst.ActionRed Red (σ.lift x) (σ'.lift x)
      theorem Red.seq_implies_par {t t' : Term} :
      t ~> t' → t ~p> t'
      theorem Red.par_implies_seqs {t t' : Term} :
      t ~p> t' → LeanSubst.Star Red t t'
      theorem Red.subst_arg {t : Term} {σ σ' : LeanSubst.Subst Term} :
      (∀ (x : Nat), LeanSubst.ActionRed Red (σ x) (σ' x)) → LeanSubst.Star Red t[σ] t[σ']
      theorem Red.preservation_of_neutral_step {t t' : Term} :
      Neutral t → t ~> t' → Neutral t'