Relations: Confluence #
This module proves some properties regarding confluence that are used for both lambda calculi and combinatory logic. Some notable theorems:
Diamond.to_confluent: the diamond property implies confluenceLocallyConfluent.terminating_toConfluent: Newman's lemma
We prove most results first for two relations, where Confluent r becomes Commute r₁ r₂, then
specialize to the classical case where r₁ = r₂.
References #
Alias of Relation.Commute.to_confluent.
Alias of Relation.DiamondCommute.to_diamond.
Extending a multistep reduction by a single step preserves multi-joinability.
Alias of Relation.Diamond.to_semiConfluent.
Extending a multistep reduction by a single step preserves multi-joinability.
Alias of Relation.SemiConfluent.to_confluent.
Alias of Relation.semiConfluent_iff_churchRosser.
Alias of the forward direction of Relation.confluent_iff_churchRosser.
Alias of Relation.confluent_iff_churchRosser.
Alias of Relation.confluent_iff_semiConfluent.
Alias of Relation.Diamond.to_confluent.
Alias of Relation.confluent_of_unique_end.
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.
Confluence implies that multi-step joinability is an equivalence.
Alias of Relation.Terminating.confluent_iff_forall_unique_normal.
Alias of Relation.Convergent.to_terminating.
Alias of Relation.Convergent.to_confluent.
Alias of Relation.Convergent.to_normalizing.
Alias of Relation.Convergent.unique_normal.
Alias of Relation.Confluent.to_locallyConfluent.
Newman's lemma: a terminating, locally confluent relation is confluent.
Alias of Relation.LocallyConfluent.terminating_toConfluent.
Newman's lemma: a terminating, locally confluent relation is confluent.
Alias of Relation.StronglyCommute.to_commute.
Alias of Relation.StronglyConfluent.to_confluent.
Relator.RightUnique corresponds to deterministic reductions, which are confluent, as all
multi-reductions with a common origin start the same (this fact is
Relation.ReflTransGen.total_of_right_unique.)
Alias of Relation.RightUnique.to_confluent.
Relator.RightUnique corresponds to deterministic reductions, which are confluent, as all
multi-reductions with a common origin start the same (this fact is
Relation.ReflTransGen.total_of_right_unique.)