Library UnifConfl
Require Export ARS.
Section FixX.
Variable X : Type.
Variable R : X → X → Prop.
Implicit Types x y z : X.
Section FixX.
Variable X : Type.
Variable R : X → X → Prop.
Implicit Types x y z : X.
Definition uniformly_confluent :=
∀ x y1 y2 k1 k2,
x >^k1 y1 → x >^k2 y2 →
∃ z l1 l2 , y1 >^l1 z ∧ y2 >^l2 z ∧ (k1 + l1 = k2 + l2 ∧ l1≤k2 ∧ l2 ≤ k1).
Lemma uniformly_semi_confluent x y1 y2 k:
uniform_diamond →
x >> y1 →
x >^ k y2 →
∃ z l1 l2, y1 >^l1 z ∧ y2 >^ l2 z ∧ (l2 ≤ 1 ∧ l1 ≤ k ∧ 1+l1=k+l2).
Lemma UD_UC : uniform_diamond → uniformly_confluent.
Lemma UC_DC : uniformly_confluent → uniform_diamond.
Lemma UC_confluent: uniformly_confluent → confluent R.
Definition UC_niehren :=
∀ x y1 y2 k1 k2 , x>^k1 y1 → x>^k2 y2 →
∃ z m, m ≤ min k1 k2 ∧ y1 >^(k2-m) z ∧ y2 >^(k1-m) z.
Lemma UC_niehren_iff:
UC_niehren ↔ uniformly_confluent.
In the following, we assume thgat the Relation is uniform confluent.