Documentation

Thesis.DecreasingDiagrams

An ARS B is locally trace-decreasing (LTD) if it is indexed by a well-founded partial order (I, <) such that every peak c <-β a ->α b can be joined by reductions of the form

  • b ->>_<α · ->⁼_β · ->>_{<α ∪ <β} d
  • c ->>_<β · ->⁼_α · ->>_{<α ∪ <β} d
Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Equations
    Instances For
      def Thesis.DCR {α I : Type} (A : Thesis.ARS α I) :

      An ARS A is called Decreasing Church-Rosser (DCR) if there exists a reduction- equivalent ARS B which is locally decreasing.

      Equations
      Instances For
        def Thesis.DCRn {α I : Type} (n : ) (A : Thesis.ARS α I) :

        An ARS A is DCR with n labels if there exists a reduction-equivalent ARS B which is indexed by { i | i < n } which is locally decreasing.

        Equations
        Instances For
          theorem Thesis.DCRn_imp_DCR {α I : Type} {n : } {A : Thesis.ARS α I} :

          If an ARS is DCRn, it is DCR.

          It is somewhat unclear to me why we need these explicit universe annotations, and Lean can't just figure it out on its own, but I suppose it doesn't matter.

          theorem Thesis.locally_decreasing_components {α : Type} (n : ) (B : Thesis.ARS α {i : | i < n}) :
          (∀ (b : α), Thesis.locally_decreasing (B.component b).ars)Thesis.locally_decreasing B

          If all components of an ARS are locally decreasing, the whole ARS is locally decreasing.

          Equations
          Instances For
            theorem Thesis.MainRoad.exists_dcr_main_road {α I : Type} {A : Thesis.ARS α I} (C : Thesis.Component A) (hcp : Thesis.cofinality_property_conv A) :
            ∃ (N : ℕ∞) (f : { b : α // C.p b }) (hseq : Thesis.reduction_seq C.ars.union_rel N f), Thesis.cofinal_reduction hseq hseq.acyclic
            def Thesis.MainRoad.seq {α I : Type} {A : Thesis.ARS α I} (C : Thesis.Component A) (hcp : Thesis.cofinality_property_conv A) :
            Thesis.reduction_seq C.ars.union_rel .choose .choose
            Equations
            • =
            Instances For
              Equations
              • =
              Instances For
                noncomputable def Thesis.MainRoad.len {α I : Type} {A : Thesis.ARS α I} (C : Thesis.Component A) (hcp : Thesis.cofinality_property_conv A) :
                Equations
                Instances For
                  noncomputable def Thesis.MainRoad.f {α I : Type} {A : Thesis.ARS α I} (C : Thesis.Component A) (hcp : Thesis.cofinality_property_conv A) :
                  { b : α // C.p b }
                  Equations
                  Instances For
                    def Thesis.MainRoad.is_acyclic {α I : Type} {A : Thesis.ARS α I} (C : Thesis.Component A) (hcp : Thesis.cofinality_property_conv A) :
                    .acyclic
                    Equations
                    • =
                    Instances For
                      def Thesis.RewriteDistance.is_reduction_seq_from {α : Type} (r : Rel α α) (a b : α) (f : α) (N : ) :
                      Equations
                      Instances For
                        theorem Thesis.RewriteDistance.exists_red_seq_set {α : Type} {r : Rel α α} {a : α} (X : Set α) (hX : xX, r a x) :
                        ∃ (N : ) (f : α), xX, Thesis.RewriteDistance.is_reduction_seq_from r a x f N

                        If some element in X is a reduct of a, there must be a reduction sequence from a to some x in X.

                        noncomputable def Thesis.RewriteDistance.dX {α : Type} {r : Rel α α} (a : α) (X : Set α) (hX : xX, r a x) :
                        { n : // (∃ (f : α), xX, Thesis.RewriteDistance.is_reduction_seq_from r a x f n) m < n, ¬∃ (f : α), xX, Thesis.RewriteDistance.is_reduction_seq_from r a x f m }
                        Equations
                        Instances For
                          theorem Thesis.RewriteDistance.dX.spec {α : Type} {r : Rel α α} {a : α} (X : Set α) (hX : xX, r a x) :
                          ∃ (f : α), xX, Thesis.RewriteDistance.is_reduction_seq_from r a x f (Thesis.RewriteDistance.dX a X hX)
                          theorem Thesis.RewriteDistance.dX.min {α : Type} {r : Rel α α} {a : α} (X : Set α) (hX : xX, r a x) (m : ) :
                          m < (Thesis.RewriteDistance.dX a X hX)¬∃ (f : α), xX, Thesis.RewriteDistance.is_reduction_seq_from r a x f m
                          theorem Thesis.RewriteDistance.dX_step_ge {α : Type} {r : Rel α α} (a b : α) {X : Set α} (ha : xX, r a x) (hb : xX, r b x) (hrel : r a b) {n : } (hdX : (Thesis.RewriteDistance.dX a X ha) = n + 1) :

                          If a -> b and the minimal distance from a to X is n + 1, the distance from b to X must be at least n. (If not, a could go via b and arrive at the main road earlier.)

                          theorem Thesis.RewriteDistance.dX_step_le {α : Type} {r : Rel α α} (a x : α) {X : Set α} (hx : x X) (hX : xX, r a x) {f : α} {n : } (hrel : Thesis.RewriteDistance.is_reduction_seq_from r a x f n) :

                          If there is a path of length n from a to some x ∈ X, then the distance dX(a, X) is at most n.

                          def Thesis.DCRComplete.SingleComponent.C' {α I : Type} {A : Thesis.ARS α I} {C : Thesis.Component A} {N : ℕ∞} {f : C.Subtype} (main_road : Thesis.reduction_seq C.ars.union_rel N f) (hcr : Thesis.cofinal_reduction main_road) :
                          Thesis.ARS C.Subtype
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem Thesis.DCRComplete.SingleComponent.steps_along_hseq {α I : Type} {A : Thesis.ARS α I} {C : Thesis.Component A} {N : ℕ∞} {f : C.Subtype} (main_road : Thesis.reduction_seq C.ars.union_rel N f) (hcr : Thesis.cofinal_reduction main_road) {n k : } (hk : n + k < N + 1) :
                            ((Thesis.DCRComplete.SingleComponent.C' main_road hcr).rel 0) (f n) (f (n + k))

                            If f (n + k) is within our sequence, we can take k 0-steps from f n to f (n + k).

                            theorem Thesis.DCRComplete.SingleComponent.C'.reduction_equivalent {α I : Type} {A : Thesis.ARS α I} {C : Thesis.Component A} {N : ℕ∞} {f : C.Subtype} (main_road : Thesis.reduction_seq C.ars.union_rel N f) (hcr : Thesis.cofinal_reduction main_road) (b c : C.Subtype) :
                            C.ars.union_rel b c (Thesis.DCRComplete.SingleComponent.C' main_road hcr).union_rel b c

                            C' is reduction-equivalent to the component of A it stems from.

                            theorem Thesis.DCRComplete.SingleComponent.dX_imp_red_seq {α I : Type} {A : Thesis.ARS α I} {C : Thesis.Component A} {N : ℕ∞} {f : C.Subtype} (main_road : Thesis.reduction_seq C.ars.union_rel N f) (hcr : Thesis.cofinal_reduction main_road) (n : ) (b : C.Subtype) :
                            (Thesis.RewriteDistance.dX b main_road.elems ) = n∃ (x : { b : α // C.p b }) (f_1 : C.Subtype), x main_road.elems f_1 0 = b f_1 n = x Thesis.reduction_seq ((Thesis.DCRComplete.SingleComponent.C' main_road hcr).union_lt (n + 1)) (↑n) f_1

                            One of the main parts of the proof for 14.2.30: if the distance from b to some x ∈ X is n, there is a reduction sequence from b to x using steps with indices smaller than n + 1.

                            theorem Thesis.DCRComplete.SingleComponent.C'.is_stronger_decreasing {α I : Type} {A : Thesis.ARS α I} {C : Thesis.Component A} {N : ℕ∞} {f : C.Subtype} (main_road : Thesis.reduction_seq C.ars.union_rel N f) {hacyclic : main_road.acyclic} (hcr : Thesis.cofinal_reduction main_road) :
                            theorem Thesis.DCRComplete.SingleComponent.C'.is_ld {α I : Type} {A : Thesis.ARS α I} {C : Thesis.Component A} {N : ℕ∞} {f : C.Subtype} (main_road : Thesis.reduction_seq C.ars.union_rel N f) {hacyclic : main_road.acyclic} (hcr : Thesis.cofinal_reduction main_road) :

                            C' is locally decreasing.

                            If A has the cofinality property, any component of A is DCR.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Equations
                              • =
                              Instances For

                                The dcr_total_ars is locally decreasing. This follows from the fact that each component is locally decreasing, any diverging steps z <-j x i-> y must be within one component, and thus have a decreasing diagram from z ->> d <<- y.

                                Equations
                                • =
                                Instances For

                                  Proposition 14.2.30: Any ARS with the cofinality property is DCR.

                                  Equations
                                  • =
                                  Instances For
                                    def Thesis.NewmanDCR.A' {α I : Type} (A : Thesis.ARS α I) :
                                    Equations
                                    Instances For
                                      def Thesis.NewmanDCR.my_lt {α I : Type} (A : Thesis.ARS α I) :
                                      LT α
                                      Equations
                                      Instances For
                                        def Thesis.NewmanDCR.my_wf {α I : Type} (A : Thesis.ARS α I) (hsn : Thesis.strongly_normalizing A.union_rel) :
                                        Equations
                                        • =
                                        Instances For
                                          Equations
                                          • =
                                          Instances For
                                            theorem Thesis.NewmanDCR.newman_dcr {α I : Type} (A : Thesis.ARS α I) (hwc : Thesis.weakly_confluent A.union_rel) (hsn : Thesis.strongly_normalizing A.union_rel) :