Equations
- «term_~>_» = Lean.ParserDescr.trailingNode `«term_~>_» 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ~> ") (Lean.ParserDescr.cat `term 81))
Instances For
Equations
- «term_~>*_» = Lean.ParserDescr.trailingNode `«term_~>*_» 81 82 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ~>* ") (Lean.ParserDescr.cat `term 82))
Instances For
Equations
- «term_~s>_» = Lean.ParserDescr.trailingNode `«term_~s>_» 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ~s> ") (Lean.ParserDescr.cat `term 81))
Instances For
Equations
- «term_~s>*_» = Lean.ParserDescr.trailingNode `«term_~s>*_» 81 82 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ~s>* ") (Lean.ParserDescr.cat `term 82))
Instances For
Equations
- «term_~p>_» = Lean.ParserDescr.trailingNode `«term_~p>_» 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ~p> ") (Lean.ParserDescr.cat `term 81))
Instances For
Equations
- «term_~p>*_» = Lean.ParserDescr.trailingNode `«term_~p>*_» 81 82 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ~p>* ") (Lean.ParserDescr.cat `term 82))
Instances For
Equations
- «term_~ps>_» = Lean.ParserDescr.trailingNode `«term_~ps>_» 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ~ps> ") (Lean.ParserDescr.cat `term 81))
Instances For
Equations
- «term_~ps>*_» = Lean.ParserDescr.trailingNode `«term_~ps>*_» 81 82 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ~ps>* ") (Lean.ParserDescr.cat `term 82))
Instances For
Equations
- ParRed.complete ((:λ[a] b) :@ t) = (ParRed.complete b)[LeanSubst.su (ParRed.complete t)::+0]
- ParRed.complete (f :@ a) = ParRed.complete f :@ ParRed.complete a
- ParRed.complete (:λ[A] t) = :λ[A] ParRed.complete t
- ParRed.complete #x_1 = #x_1
Instances For
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)
Equations
- ParRed.instHasTriangleTerm = { complete := ParRed.complete, triangle := ⋯ }
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.pars_action_lift
{t t' : Term}
:
LeanSubst.Star ParRed t t' → LeanSubst.Star (LeanSubst.ActionRed ParRed) (LeanSubst.su t) (LeanSubst.su t')
theorem
Red.seqs_action_lift
{t t' : Term}
:
LeanSubst.Star Red t t' → LeanSubst.Star (LeanSubst.ActionRed Red) (LeanSubst.su t) (LeanSubst.su t')
theorem
Red.seqs_action_destruct
{a : LeanSubst.Subst.Action Term}
{t' : Term}
:
LeanSubst.Star (LeanSubst.ActionRed Red) a (LeanSubst.su t') →
∃ (t : Term), a = LeanSubst.su 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.confluence
{s t1 t2 : Term}
:
LeanSubst.Star Red s t1 → LeanSubst.Star Red s t2 → ∃ (t : Term), LeanSubst.Star Red t1 t ∧ LeanSubst.Star Red t2 t