Sketchy proof of the Confluence Theorem


We first define the relation  =>beta   (beta-parallel reduction).
 
Informally,  M => N  holds whenever N is obtained out of M by simulataneously reducing some (possibly none or all) of the redexes in M.


We can formally define the above relation by means of the following formal system

                     ________
Axiom             x => x


Rules
                              M => N                                     M => M'         N => N'
                        --------------------                   ------------------------------------
                          \x.M => \x.N                                           MN => M'N'        

                                            M => M'     N => N'
                                         ------------------------------
                                           (\x.M)N => M'[N'/x]

It is possible to prove that, in case a judgment like  M => N is derivable, then N is obtained out of M by simultaneously reducing a subset of its redexes.


It is possible to prove the following intuitive properties.
 
(i) If  M => N  then  M -->>  N

(ii) If  M --> N then  M => N

Notice that the viceversa of (i) does not hold, that is  M -->> N does not imply  M => N

In fact (\x.xy)(II) -->>  y   but it is not true that  (\x.xy)( II) =>  y  .
The intuitive motivation why the viceversa of (i) does not hold is that, if we beta-reduce a term P, the reduction can create a redex not present in P.

In the sequence    (\x.xy)( II) -->  (\x.xy)I --> Iy --> y
the underlined redex was not present in the starting term. It has been created by the second reduction. Such a redex cannot obviously be reduced by a parallel reduction of  (\x.xy)(II), since it does not exist yet.



It is possible to prove DP(=>), i.e. that the diamond property holds for =>:

We do not formally prove DP(=>), but we can provide the intuition underlying the proof:
it is enough to define a function (-)* that, given a term M, returns the term obtained by reducing all the redexes of M.
It is not difficult then to show that  M => N implies N => M*
DP(=>) follows now easily, since if   N' <= P => N , then  N' => P* <= N .



We have now all the ingredients to prove the Confluence Theorem.

Let us assume
                                       P <<---  M  --->> Q

That is                P <-- .... <-- M --> ....--> Q

By the property (ii) above we have that

                          P <= ... <= M =>...=> Q

We can now use the Diamond property for => in order to get, tile by tile , a term L such that

                         P => ... => L <=...<= Q

Now, by using property (i) above we can obtain

                          P --> ... --> L <--...<-- Q

That is  P --->>  L << --- Q