Relations: Confluence and Termination #
This module proves some properties regarding confluence and termination that are used for both lambda calculi and combinatory logic. Some notable theorems:
Diamond.toConfluent: the diamond property implies confluenceLocallyConfluent.Terminating_toConfluent: Newman's lemma
References #
Extending a multistep reduction by a single step preserves multi-joinability.
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.
Confluence implies that multi-step joinability is an equivalence.
Newman's lemma: a terminating, locally confluent relation is confluent.
If a relation is squeezed by a relation and its multi-step closure, they are multi-step equal
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.)