Documentation

Minimal.ARS

Metatheory about term-rewriting systems #

This is an adaptation of Mathlib.Logic.Relation for Type-valued relations (contrary to Prop)

def Reflexive {α : Type u} {r : ααType u} :

Property of being reflexive

Equations
Instances For
    def Transitive {α : Type u} {r : ααType u} :

    Property of being transitive

    Equations
    • Transitive = ((x y z : α) → r x yr y zr x z)
    Instances For
      inductive ReflTransGen {α : Type u} (r : ααType u) :
      ααType u

      Reflexive transitive closure

      Instances For
        def ReflTransGen.trans {α : Type u} {r : ααType u} {a b c : α} (hab : ReflTransGen r a b) (hbc : ReflTransGen r b c) :

        Rt-closure is transitive

        Equations
        Instances For
          def ReflTransGen.size {α : Type u} {r : ααType u} {a b : α} (hab : ReflTransGen r a b) :
          Equations
          Instances For
            def Join {α : Type u} (r : ααType u) (a b : α) :

            Two elements can be joined if there exists an element to which both are related

            Equations
            • Join r a b = ((w : α) × r a w × r b w)
            Instances For
              def DiamondProperty {α : Type u} (r : ααType u) :

              Property that if diverged in 1 step, the results can be joined in 1 step

              Equations
              Instances For
                def Confluence {α : Type u} (r : ααType u) :

                Property that if diverged in any number of steps, the results can be joined in any number of steps

                Equations
                Instances For
                  def Takahashi {α : Type u} (r : ααType u) :
                  Equations
                  • Takahashi r = ((complete_development : αα) × ({s u : α} → r s ur u (complete_development s)))
                  Instances For
                    def takahashi_implies_diamond {α : Type u} {r : ααType u} (tak : Takahashi r) :
                    Equations
                    Instances For
                      def diamond_implies_confluence' {α : Type u} {r : ααType u} (h : (a b c : α) → r a br a cJoin r b c) (a b c : α) (hab : ReflTransGen r a b) (hac : ReflTransGen r a c) :

                      Diamond property implies Church-Rosser (in the form in which Lean recognizes termination)

                      Equations
                      Instances For
                        def diamond_implies_confluence'.step {α : Type u} {r : ααType u} {a b c : α} (h : (a b c : α) → r a br a cJoin r b c) (hab : r a b) (hac : ReflTransGen r a c) :
                        (d : α) × ReflTransGen r b d × r c d
                        Equations
                        Instances For
                          def diamond_implies_confluence {α : Type u} {r : ααType u} :

                          Diamond property implies Church-Rosser

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Equivalece {α : Type u} (r1 r2 : ααType u) :
                            Equations
                            • Equivalece r1 r2 = (({a b : α} → r1 a br2 a b) × ({a b : α} → r2 a br1 a b))
                            Instances For
                              def WeakEquivalence {α : Type u} (r1 r2 : ααType u) :
                              Equations
                              Instances For
                                def weak_equiv_keeps_confluence {α : Type u} {r1 r2 : ααType u} (weakEquiv : WeakEquivalence r1 r2) (conf : Confluence r1) :
                                Equations
                                Instances For
                                  def ZProperty {α : Type u} (r : ααType u) :
                                  Equations
                                  Instances For
                                    def lift_f {α : Type u} {r : ααType u} {a b : α} (ab : ReflTransGen r a b) (z : ZProperty r) :
                                    ReflTransGen r (z.fst a) (z.fst b)
                                    Equations
                                    Instances For
                                      def aux {α : Type u} {r : ααType u} {a b u : α} (au : r a u) (u_b : ReflTransGen r u b) (z : ZProperty r) :
                                      ReflTransGen r b (z.fst b)
                                      Equations
                                      Instances For
                                        def step {α : Type u} {r : ααType u} {a b c : α} (ab : r a b) (ac : ReflTransGen r a c) (z : ZProperty r) :
                                        ReflTransGen r b (z.fst c)
                                        Equations
                                        Instances For
                                          theorem decr {α : Type u} {r : ααType u} {a b c : α} (ab : r a b) (b_c : ReflTransGen r b c) :
                                          @[irreducible]
                                          def z_confluence {α : Type u} {r : ααType u} (z : ZProperty r) {a b c : α} (a_b : ReflTransGen r a b) (a_c : ReflTransGen r a c) :
                                          Equations
                                          Instances For
                                            def z_implies_confluence {α : Type u} {r : ααType u} (z : ZProperty r) :
                                            Equations
                                            Instances For