Documentation

LeanSubst.Reduction

class LeanSubst.Substitutive {T : Type u} [SubstMap T] (R : TTProp) :
  • subst {t s : T} (σ : Subst T) : R t sR (t[σ]) (s[σ])
Instances
    class LeanSubst.HasTriangle {T : Type u} (R : TTProp) :
    • complete : TT
    • triangle {t s : T} : R t sR s (complete R t)
    Instances
      inductive LeanSubst.ActionRed {T : Type u} (R : TTProp) :
      Instances For
        inductive LeanSubst.Star {T : Type u} (R : TTProp) :
        TTProp
        • refl {T : Type u} {R : TTProp} {t : T} : Star R t t
        • step {T : Type u} {R : TTProp} {x y z : T} : Star R x yR y zStar R x z
        Instances For
          inductive LeanSubst.Plus {T : Type u} (R : TTProp) :
          TTProp
          • start {T : Type u} {R : TTProp} {t s : T} : R t sPlus R t s
          • step {T : Type u} {R : TTProp} {x y z : T} : Plus R x yR y zPlus R x z
          Instances For
            inductive LeanSubst.Conv {T : Type u} (R : TTProp) :
            TTProp
            • refl {T : Type u} {R : TTProp} {x : T} : Conv R x x
            • forward {T : Type u} {R : TTProp} {x y z : T} : Conv R x zR x yConv R y z
            • backward {T : Type u} {R : TTProp} {x y z : T} : Conv R y zR x yConv R x z
            Instances For
              class LeanSubst.HasConfluence {T : Type u} (R : TTProp) :
              Instances
                theorem LeanSubst.Star.trans {T : Type u} {R : TTProp} {x y z : T} :
                Star R x yStar R y zStar R x z
                theorem LeanSubst.Star.promote {T : Type u} {R1 R2 : TTProp} {x y : T} (Rprm : ∀ {x y : T}, R1 x yR2 x y) :
                Star R1 x yStar R2 x y
                theorem LeanSubst.Star.stepr {T : Type u} {R : TTProp} {x y z : T} :
                R x yStar R y zStar R x z
                theorem LeanSubst.Star.destruct {T : Type u} {R : TTProp} {x z : T} :
                Star R x z → ( (y : T), R x y Star R y z) x = z
                theorem LeanSubst.Star.congr3_1 {T : Type u} {R : TTProp} {t1 t1' : T} (t2 t3 : T) (f : TTTT) :
                (∀ {t1 t2 t3 t1' : T}, R t1 t1'R (f t1 t2 t3) (f t1' t2 t3))Star R t1 t1'Star R (f t1 t2 t3) (f t1' t2 t3)
                theorem LeanSubst.Star.congr3_2 {T : Type u} {R : TTProp} {t2 t2' : T} (t1 t3 : T) (f : TTTT) :
                (∀ {t1 t2 t3 t2' : T}, R t2 t2'R (f t1 t2 t3) (f t1 t2' t3))Star R t2 t2'Star R (f t1 t2 t3) (f t1 t2' t3)
                theorem LeanSubst.Star.congr3_3 {T : Type u} {R : TTProp} {t3 t3' : T} (t1 t2 : T) (f : TTTT) :
                (∀ {t1 t2 t3 t3' : T}, R t3 t3'R (f t1 t2 t3) (f t1 t2 t3'))Star R t3 t3'Star R (f t1 t2 t3) (f t1 t2 t3')
                theorem LeanSubst.Star.congr3 {T : Type u} {R : TTProp} {t1 t1' t2 t2' t3 t3' : T} (f : TTTT) :
                (∀ {t1 t2 t3 t1' : T}, R t1 t1'R (f t1 t2 t3) (f t1' t2 t3))(∀ {t1 t2 t3 t2' : T}, R t2 t2'R (f t1 t2 t3) (f t1 t2' t3))(∀ {t1 t2 t3 t3' : T}, R t3 t3'R (f t1 t2 t3) (f t1 t2 t3'))Star R t1 t1'Star R t2 t2'Star R t3 t3'Star R (f t1 t2 t3) (f t1' t2' t3')
                theorem LeanSubst.Star.congr2_1 {T : Type u} {R : TTProp} {t1 t1' : T} (t2 : T) (f : TTT) :
                (∀ {t1 t2 t1' : T}, R t1 t1'R (f t1 t2) (f t1' t2))Star R t1 t1'Star R (f t1 t2) (f t1' t2)
                theorem LeanSubst.Star.congr2_2 {T : Type u} {R : TTProp} {t2 t2' : T} (t1 : T) (f : TTT) :
                (∀ {t1 t2 t2' : T}, R t2 t2'R (f t1 t2) (f t1 t2'))Star R t2 t2'Star R (f t1 t2) (f t1 t2')
                theorem LeanSubst.Star.congr2 {T : Type u} {R : TTProp} {t1 t1' t2 t2' : T} (f : TTT) :
                (∀ {t1 t2 t1' : T}, R t1 t1'R (f t1 t2) (f t1' t2))(∀ {t1 t2 t2' : T}, R t2 t2'R (f t1 t2) (f t1 t2'))Star R t1 t1'Star R t2 t2'Star R (f t1 t2) (f t1' t2')
                theorem LeanSubst.Star.congr1 {T : Type u} {R : TTProp} {t1 t1' : T} (f : TT) :
                (∀ {t1 t1' : T}, R t1 t1'R (f t1) (f t1'))Star R t1 t1'Star R (f t1) (f t1')
                theorem LeanSubst.Star.strip {T : Type u} {R : TTProp} [HasTriangle R] {s t1 t2 : T} :
                R s t1Star R s t2 (t : T), Star R t1 t R t2 t
                theorem LeanSubst.Star.confluence {T : Type u} {R : TTProp} [HasTriangle R] {s t1 t2 : T} :
                Star R s t1Star R s t2 (t : T), Star R t1 t Star R t2 t
                theorem LeanSubst.Star.subst {T : Type u} {R : TTProp} [SubstMap T] [Substitutive R] {x y : T} (σ : Subst T) :
                Star R x yStar R (x[σ]) (y[σ])
                theorem LeanSubst.Plus.destruct {T : Type u} {R : TTProp} {x z : T} :
                Plus R x z (y : T), R x y Star R y z
                theorem LeanSubst.Plus.stepr {T : Type u} {R : TTProp} {x y z : T} :
                R x yPlus R y zPlus R x z
                theorem LeanSubst.Plus.stepr_from_star {T : Type u} {R : TTProp} {x y z : T} :
                R x yStar R y zPlus R x z
                theorem LeanSubst.Conv.forward_right {T : Type u} {R : TTProp} {x y z : T} :
                Conv R x yR y zConv R x z
                theorem LeanSubst.Conv.backward_right {T : Type u} {R : TTProp} {x y z : T} :
                Conv R x yR z yConv R x z
                theorem LeanSubst.Conv.sym {T : Type u} {R : TTProp} {x y : T} :
                Conv R x yConv R y x
                theorem LeanSubst.Conv.star_forward {T : Type u} {R : TTProp} {x y z : T} :
                Conv R x zStar R x yConv R y z
                theorem LeanSubst.Conv.star_backward {T : Type u} {R : TTProp} {x y z : T} :
                Conv R y zStar R x yConv R x z
                theorem LeanSubst.Conv.star_forward_right {T : Type u} {R : TTProp} {x y z : T} :
                Conv R x yStar R y zConv R x z
                theorem LeanSubst.Conv.star_backward_right {T : Type u} {R : TTProp} {x y z : T} :
                Conv R x yStar R z yConv R x z
                theorem LeanSubst.Conv.star_equiv {T : Type u} {R : TTProp} {x y : T} [HasConfluence R] :
                Conv R x y (t : T), Star R x t Star R y t
                theorem LeanSubst.Conv.trans {T : Type u} {R : TTProp} {x y z : T} [HasConfluence R] :
                Conv R x yConv R y zConv R x z
                def LeanSubst.FunctionalTerm {T : Type u} (R : TTProp) (t : T) :
                Equations
                Instances For
                  class LeanSubst.Functional {T : Type u} (R : TTProp) :
                  Instances