The relation r 'up to' the relation s.
Equations
- Relation.UpTo r s = Relation.Comp s (Relation.Comp r s)
Instances For
A relation has the diamond property when all reductions with a common origin are joinable
Equations
- Relation.Diamond r = ∀ {a b c : α}, r a b → r a c → Relation.Join r b c
Instances For
A relation is confluent when its reflexive transitive closure has the diamond property.
Equations
Instances For
A relation is semi-confluent when single and multiple steps with common origin are multi-joinable.
Equations
- Relation.SemiConfluent r = ∀ {x y₁ y₂ : α}, Relation.ReflTransGen r x y₂ → r x y₁ → Relation.Join (Relation.ReflTransGen r) y₁ y₂
Instances For
A relation has the Church Rosser property when equivalence implies multi-joinability.
Equations
- Relation.ChurchRosser r = ∀ {x y : α}, Relation.EqvGen r x y → Relation.Join (Relation.ReflTransGen r) x y
Instances For
Extending a multistep reduction by a single step preserves multi-joinability.
An element is normal if it is not reducible.
Equations
- Relation.Normal r x = ¬Relation.Reducible r x
Instances For
A multi-step from a normal form must be reflexive.
For a Church-Rosser relation, elements in an equivalence class must be multi-step related.
For a Church-Rosser relation there is one normal form in each equivalence class.
A pair of subrelations lifts to transitivity on the relation.
Equations
- Relation.trans_of_subrelation s s' r hr h h' = { trans := ⋯ }
Instances For
A subrelation lifts to transitivity on the left of the relation.
Equations
- Relation.trans_of_subrelation_left s r hr h = { trans := ⋯ }
Instances For
A subrelation lifts to transitivity on the right of the relation.
Equations
- Relation.trans_of_subrelation_right s r hr h = { trans := ⋯ }
Instances For
Confluence implies that multi-step joinability is an equivalence.
A relation is terminating when the inverse of its transitive closure is well-founded. Note that this is also called Noetherian or strongly normalizing in the literature.
Equations
- Relation.Terminating r = WellFounded fun (a b : α) => r b a
Instances For
A relation is locally confluent when all reductions with a common origin are multi-joinable
Equations
- Relation.LocallyConfluent r = ∀ {a b c : α}, r a b → r a c → Relation.Join (Relation.ReflTransGen r) b c
Instances For
Newman's lemma: a terminating, locally confluent relation is confluent.
A relation is strongly confluent when single steps are reflexive- and multi-joinable.
Equations
- Relation.StronglyConfluent r = ∀ {x y₁ y₂ : α}, r x y₁ → r x y₂ → ∃ (z : α), Relation.ReflGen r y₁ z ∧ Relation.ReflTransGen r y₂ z
Instances For
Generalization of Confluent to two relations.
Equations
- Relation.Commute r₁ r₂ = ∀ {x y₁ y₂ : α}, Relation.ReflTransGen r₁ x y₁ → Relation.ReflTransGen r₂ x y₂ → ∃ (z : α), Relation.ReflTransGen r₂ y₁ z ∧ Relation.ReflTransGen r₁ y₂ z
Instances For
Generalization of StronglyConfluent to two relations.
Equations
- Relation.StronglyCommute r₁ r₂ = ∀ {x y₁ y₂ : α}, r₁ x y₁ → r₂ x y₂ → ∃ (z : α), Relation.ReflGen r₂ y₁ z ∧ Relation.ReflTransGen r₁ y₂ z
Instances For
If a relation is squeezed by a relation and its multi-step closure, they are multi-step equal