• No results found

Kernel & propagation system

5.3 Normalisation results

6.1.2 Kernel & propagation system

Despite their diversity, all the cut-elimination systems have to deal with those basic cases when the cut-type is principal in both premisses. In these cases the inference rules provide canonical ways of reducing the cut, possibly creating cuts on sub-formulae. These cuts are sometimes called logical cuts [Urb00], or

principal cuts. At the level of terms, they correspond to the constructshN †x.Mi where N is a value andM is an x-covalue, which we call logical cut-constructor

orprincipal cut-constructor. Fig. 6.1 shows the standard rewrite rules to reduce them. We denotes the reduction relation −→princs .

What is less standard is the way to deal with those cases in which the cut-type is not principal in at least one premiss. What process will reduce the problem to the case of principal cuts? It clearly depends on the proof of the premiss in which the cut-formula is not principal, pushing the cut thereinto, and can disregard the proof of the other premiss. But then if in both premisses the cut- type is not principal, a choice has to be made, leading to non-confluence of the

B hλx.M †y.y[N, z.P]i −→ hhN †x.Mi †z.Pi if y /∈FV(P)FV(N)

hx†y.y[N, z.P]i −→ x[N, z.P] if y /∈FV(P)FV(N)

hλx.M †y.yi −→ λx.M

hx†y.yi −→ x

Figure 6.1: Principal cut-reductions

process unless it is restricted by a general preference (or strategy) that determines each of these choices. It is interesting to see that this non-confluence can even occur in the intuitionistic sequent calculus, whilst it is often thought to be a specificity of classical logic.

Cut-elimination systems thus reduce non-principal cuts with rules based on two kinds of behaviour: left-propagation, denoted−→left , reduces a cut by push-

ing it to the left, depending on the proof of its first premiss (in which the cut- type is not principal), whileright-propagation, denoted−→right , reduces a cut by

pushing it to the right depending on the proof of its second premiss (in which the cut-type is not principal). The former reduces hN †x.Mi depending on N that is not a value (in other words, it alleviates the bodyN of the cut-constructor, re- gardless ofM), and the latter reduces it depending onM that is not anx-covalue, regardless of N.

Clearly, the two situations overlap when neither N is a value nor M is an x-covalue, or, in a typed framework, when in neither premisses of the cut the cut-type is principal. This generates critical pairs and non-confluence, and an interesting point is that techniques to avoid this situation (namely, deciding which kind of rule will apply with priority) reveal connections with the CBV and CBN

semantics of functional programming, as introduced in Chapter 3. Thus, always giving preference to left-propagation corresponds to CBV, while preference to the right-propagation corresponds to CBN, which we define as follows:

Definition 100 (CBV & CBN sub-systems)

The CBN-sub-system restricts the left-propagation system by requiring it to reduce hN †x.Mi only when M is an x-covalue (and thus the cut- constructor cannot be right-propagated).

We write−→CBNs for the reduction relation generated by−→princs ,−→right ,

and this restricted −→left .

The CBV-sub-system restricts the right-propagation system by requiring it to reduce hN †x.Mi only when N is a value (and thus the cut-constructor cannot be left-propagated).

We write−→CBVs for the reduction relation generated by−→princs ,−→left ,

Now, obtaining the completeness of these restrictions for cut-elimination also justifies the need for a general strong normalisation result of the whole system rather than weak normalisation.

Finally, variations of the principal rules are of interest. When in one of the premisses of a principal cut, the cut-type is introduced by an axiom, the standard way to eliminate the cut is to only keep the proof of the other premiss (possibly using a contraction if the axiom proves the first premiss). But this works in fact whether or not the cut-type is principal in this other premiss, and it thus applies to cuts that might not be logical as well. This generalises the scope of principal rules, the reduction relation of which we denote −→princ , but it also simplifies

them as shown in Fig 6.2.

B hλx.M †y.y[N, z.P]i −→ hhN †x.Mi †z.Pi if y /∈FV(P)FV(N)

B1 hx†y.Ni −→ {xy}N

B2 hM †y.yi −→ M

Figure 6.2: Generalised principal reductions

We define−→CBV and −→CBN just like−→CBVs and −→CBNs , but consider-

ing −→princ instead of −→princs .

Convenient and simplifying though this extension is, it creates new critical pairs with the left and right propagation (making confluence of −→CBV and

−→CBN more difficult to prove).

In the next section we present three kinds of propagation rules, respectively generating systems SI, KK and JC, for which we have

(←→∗ CBVKKs ) = (←→ CBVKK ) = (←→ CBVJCs ) = (←→ CBVJC ) (←→∗ CBNKKs ) = (←→ CBNKK ) = (←→ CBNJCs ) = (←→ CBNJC )

We call those equational theoriesCBV and CBN. In system SI, we only have in

general (←→∗ CBVSIs )(←→ CBVSI )(CBV) (←→∗ CBNSIs )(←→ CBNSI )(CBN)

However, on weakly normalising terms we also have

(←→∗ CBVSIs ) = (←→ CBVSI ) and (←→ CBNSIs ) = (←→ CBNSI ). On strongly normal-

ising terms, in particular for typed terms, we even have

(←→∗ CBVSIs ) = (←→ CBVSI ) = (CBV) and (←→ CBNSIs ) = (←→ CBNSI ) = (CBN).