Documentation

Cslib.Languages.CombinatoryLogic.Confluence

SKI reduction is confluent #

This file proves the Church-Rosser theorem for the SKI calculus, that is, if a ↠ b and a ↠ c, b ↠ d and c ↠ d for some term d. More strongly (though equivalently), we show that the relation of having a common reduct is transitive — in the above situation, a and b, and a and c have common reducts, so the result implies the same of b and c. Note that Join (ReflTransGen Red) is symmetric (trivially) and reflexive (since ↠ is), so we in fact show that Join (ReflTransGen Red) is an equivalence.

Our proof follows the method of Tait and Martin-Löf for the lambda calculus, as presented for instance in Chapter 4 of Peter Selinger's notes: https://www.mscs.dal.ca/~selinger/papers/papers/lambdanotes.pdf.

Main definitions #

Main results #

A reduction step allowing simultaneous reduction of disjoint redexes

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

        The inclusion (· ⭢ₚ ·) ≤ (· ↠ ·).

        theorem Cslib.SKI.Red.le_parallelReduction :
        (fun (x1 x2 : SKI) => x1.Red x2) ≤ fun (x1 x2 : SKI) => x1.ParallelReduction x2

        The inclusion (· ⭢ ·) ≤ (· ⭢ₚ ·).

        The relations ⭢ and ⭢ₚ have the same reflexive-transitive closure.

        Irreducibility for the (partially applied) primitive combinators.

        TODO: possibly these should be proven more generally (in another file) for ↠.

        The key result: the Church-Rosser property holds for ⭢ₚ. The proof is a lengthy case analysis on the reductions a ⭢ₚ a₁ and a ⭢ₚ a₂, but is entirely mechanical.

        The Church-Rosser theorem in its general form.

        The Church-Rosser theorem in the form it is usually stated.