13

Constructor equivalent term rewriting systems are strongly sequential: a direct proof

Embed Size (px)

Citation preview

Constructor Equivalent Term RewritingSystems are Strongly Sequential: a directproofIrene DURAND Bruno SALINIERLaboratoire Bordelais de Recherche en InformatiqueUniversite de Bordeaux I351, Cours de la Liberation 33405 Talence, Franceemail: [email protected] [8], Thatte demonstrated the possibility of simulating an orthogonal TRSwith a left-linear constructor system obtained from the original system via a simpletransformation. The class of strongly sequential systems (SS) was dened in [3].In [2], we have dened the class of constructor equivalent systems (CE) for whichThatte's transformation preserves strong sequentiality; in that same article, weprove that CE SS by showing that CE is a strict subset of the forward-branchingclass [7] which is itself a strict subset of SS [1]. In this article, we give a direct proof(i.e. a proof which does not involve the forward-branching class) of the inclusionCE SS. It uses parts of the proof given in [6] for deciding strong sequentiality.keywords: term-rewriting, equational programming, constructor systems, semantics1 IntroductionProgramming with Term Rewriting Systems (TRSs for short) is of interest for a largenumber of applications. Orthogonal TRSs which ensure con uent reductions but notnecessarily termination form a good framework for programming with rewrite systems.A program consists of a set of rewrite rules of the form L ! R. An execution of aprogram consists of repeatedly replacing redexes (instances of left-hand sides) in theinput term with the corresponding right-hand side. This process called reduction stopsif the normal form exists and is reached. For a term having a normal form there may beinnite sequences of reductions thus not leading to the normal form.The class of strongly sequential term rewriting systems (SS) was dened by Huet &Levy in [3]. Strongly sequential systems admit an ecient one-step reduction strategy;strong sequentiality is decidable [3] but is conjectured to be NP-complete [6].This work has been sup ported by the ESPRIT-Basic Research Working Group \COMPUGRAPHII" (\Computing by Graph Transformation") and the PRC-MathInfo1

In [8], Thatte demonstrated the possibility of simulating an orthogonal TRS with aleft-linear constructor system obtained from the original system via a simple transforma-tion. In [2], we have dened the class of constructor equivalent systems (CE) for whichThatte's transformation preserves strong sequentiality. In that same article, we provethat CE SS by showing that CE is a strict subset of the forward-branching class [7]which is itself a strict subset of SS [1]. In this article, we give a direct proof (i.e. a proofwhich does not involve the forward-branching class) of the inclusion CE SS. It usesparts of the proof given in [6] for deciding strong sequentiality.2 Terminology and NotationWe mainly follow the notation of [4]. We also use some notation of [6].Let Fn be a set of function symbols of arity n, F = SfFnjn 0g, and V a denu-merable set of variable symbols. Our expression language is the set T (F ;V) of rst orderterms formed from F and V dened as follows:V T (F ;V),F 2 Fn and 8i; 1 i n, Mi 2 T (F ;V) ) F (M1;M2; : : : ;Mn) 2 T (F ;V).When F and V are xed from the context, we denote T (F ;V) by T . We also denote theset T (F ; ;) of ground terms (containing no variable) by T (F).For any term M we dene its set of occurrences O(M ) as a nite subset of the set ofnite sequences of positive integers as follows: 2 O(M ),u 2 O(Mi)) iu 2 O(F (M1;M2; : : : ;Mn)) for 1 i n.In the literature occurrences are also called positions or paths. Intuitively, an occurrenceof M names a subterm of M by its access path. The set of occurrences is partiallyordered by the prex ordering : u v i 9w such that uw = v. In this case, we denev=u as w. Finally, u < v i u v and u 6= v.If u 2 O(M ), we dene the subterm of M at u as the term M=u dened inductively byM= =M ,F (M1;M2; : : : ;Mn)=iu =Mi=u,and we dene the root symbol of M as the symbol root(M ) dened byroot(M ) =M if M 2 V,root(M ) = F if M = F (M1;M2; : : : ;Mn).If u 2 O(M ) and u 6= then M=u is a proper subterm of M and u is called an inneroccurrence of M . Finally, if u 2 O(M ), we dene for every term N the replacement inM at u by N as the term M [u N ] dened byM [ N ] = N ,F (M1;M2; : : : ;Mn)[iu N ] = F (M1;M2; : : : ;Mi[u N ]; : : : ;Mn).A substitution is any function from T to T satisfying(F (M1;M2; : : : ;Mn)) = F ((M1); (M2); : : : ; (Mn)).If T is a ground term, L is a term, we say that T matches L if there exists a substitution such that T = (L).We use term rewriting system (TRS for short) for any set of pairs of terms Li ! Risuch that V(Ri) V(Li) where V(M ) is the set of variables appearing in M . Wewrite Red () to denote the set of left-hand sides Li of . For any substitution andN 2 Red(), (N ) is called a redex of . We write R(M ) to denote the set of redexoccurrences in the term M . A term such that R(M ) = ; is said to be in -normalform. From now on we will assume that the TRS is xed and drop except when2

needed.We say that the term M reduces to N at occurrence u using rule Li ! Ri if and onlyif there exists a substitution such that M=u = (Li) and N = M [u (Ri)]. Wewrite M ! N when M reduces to N . We use ! to denote the re exive and transitiveclosure of !.Denition 2.1 A TRS is orthogonal if and only if it satises the two following con-straints:Left-linearity: for every L in Red(), every variable of L occurs only once:L=u = L=v 2 V ) u = v.Nonambiguity: if Li; Lj 2 Red (), for every u 2 O(Li) such that Li=u 62 V, there are nosubstitutions , 0, such that (Li=u) = 0(Lj), except in the trivial case where i = jand u = .In [5], Huet & Oppen showed that for orthogonal TRSs the relation ! is con uent(has the Church-Rosser property). In this article, we restrict ourselves to the class oforthogonal TRSs.We represent prexes of terms by -terms, i.e., by terms where a new nullary functionsymbol can occur. Let T be the set of these -terms. Let us consider the prexordering on T dened by M for any M 2 T ,F (M1;M2; : : : ;Mn) F (N1; N2; : : : ; Nn) if and only if Mi Ni for 1 i n,x x for any variable.All the previously dened operations on terms are obviously extended to -terms (justreplace F by F[fg).We write O(M ) to denote the set of occurrences of M with symbol :O(M ) = fu 2 O(M )jM=u = g.In the same way, we write O(M ) to denote the set of non-occurrences of M :O(M ) = fu 2 O(M )jM=u 6= g.We will write M for (M ) where is the substitution such that (x) = for allvariables x. If L is a left-hand side then L is called a redex scheme. An -term Nsuch that R(N ) = ; and O(N ) 6= ; will be said in --normal form. The concept ofnormal form is reserved for terms containing neither redexes nor 's. We will denote byRed() the set of redex schemes:Red() = fMjM 2 Red()g.A preredex is an -term which can be rened to a redex scheme. A preredex is proper ifit is neither a redex scheme nor equal to .3 Strongly Sequential and Constructor SystemsWe now recall the denition of the strongly sequential class and the denition of theconstructor class. We also give some already known results about the strongly sequentialclass which are of interest for this paper.3.1 Strongly Sequential SystemsDenition 3.1 Let P be a monotonic predicate on T . An occurrence u ofM is said tobe an index of P in M if and only if M=u = and 8N such that M N , P (N ) = true3

implies N=u 6= . Then P is sequential at M if and only if whenever P (M ) = false, and9N M such that P (N ) = true, it follows that there exists an index of P in M .Notation: Let M and N be two -terms. We write M !? N if and only ifN =M [u T ] for some redex occurrence u 2 R(M ) and some -term T .The relation !? corresponds to reduction with arbitrary right-hand sides at everyreduction step and is called arbitrary reduction.We can now dene the predicate nf ? as follows:nf ?(M ) = true if and only if 9N in normal form 2 T (F) such that M !? N .Denition 3.2 An orthogonal system is strongly sequential if and only if the predicatenf ? is sequential at anyM in -normal form. We write I(M ) to denote the set of indexesof nf ? in M .The strongly sequential class is denoted by SS.From now on, an index of nf ? will be simply called an index.It is easy to decide whether an -occurrence of an -term is an index [3]. Howeverdeciding whether a TRS is strongly sequential is not a trivial matter; the rst proof wasgiven by [3]; another proof can be found in [6]. In [6], Klop and Middeldorp conjecturethat deciding strong sequentiality is NP-Complete.Denition 3.3(1) An -term T is redex compatible if it can be rened to a redex (i.e. T T 0 for someredex T 0).(2) The reduction relation ! (-reduction) is dened as follows:Let T 2 T and u 2 O(T ).T ! T [u ] i T=u is redex compatible.Proposition 3.1 [6] -reduction is con uent and terminating.The next proposition relates -reduction to arbitrary reduction.Proposition 3.2 [6]If S ! T then S0 !? T for some S0 S.If S !? T then S ! T 0 for some T 0 T .Denition 3.4 [3] The direct approximant !(T ) of an -term T is the normal form ofT with respect to -reduction. !(T ) is well dened according to Proposition 3.1.The next lemma shows that with the -reduction it is simple to decide whether an-occurrence of an -term is an index.Lemma 3.1 [3] Let T 2 T and u 2 O(T ). Let be a fresh constant symbol. Thefollowing three statements are equivalent.(1) u 2 I(T )(2) !(T [u ]) 6= !(T )(3) u 2 O(!(T [u ]))The notion of minimal free -term was rst given by [6].Denition 3.5 [6] An -term T is called free if it is in -normal form and I(T ) = ;.4

Denition 3.6 [6] A free -term T is said to be minimal if it is minimal with respectto the number of non-occurrences.The two following propositions are essential for our proof of Section 6.Proposition 3.3 [6] Let be an orthogonal TRS. If is not strongly sequential thenthere exists a minimal free -term M which is built with proper preredexes only.Proposition 3.4 [6] If M is a minimal free -term then I(M [u ]) = fug for allu 2 O(M ).3.2 Constructor SystemsA constructor symbol is a symbol of F that does not appear at the root of any redexscheme. By FC , we denote the subset of constructor symbols and by FF the subset ofnonconstructor symbols .Denition 3.7 A TRS is a constructor system if and only if for every L in Red(),all inner occurrences u 2 O(L) are such that either root(L=u) 2 FC or root(L=u) 2 V.The constructor class is denoted by C.We write Red 0() to denote the set of subterms (not necessarily proper) of redexschemes having a nonconstructor symbol at their root:Red 0() = fM , 9N 2 Red(), 9u 2 O(N ), N=u =M and root(M ) 62 FC g.Lemma 3.2 If 2 C then Red 0() = Red().PROOF Obvious. 24 Thatte's TransformationThis section is almost directly taken from [8].Let be an orthogonal TRS. With each f 2 FF associate a new (constructor)symbol Cf . Let F# = F[f Cf j f 2 FFg. Let t0[T ] denote the term T with every inneroccurrence of f 2 FF replaced by Cf and t00[T ] the term with all occurrences so replaced.# is the smallest system which satises the following two assertions:(1) If L! R 2 then t0[L]! R 2 #.(2) Whenever U = f(T1; : : : ; Tk); f 2 FF , is a proper subterm of a left-hand side in ,t0[U ]! t00[U ] 2 #.Example 4.1Let be the following system:F (G(A;B; x))! R1,F (G(B; x;A))! R2,H(G(x;A;B))! R3,G(B;B;B)! R4. then # is:F (CG(A;B; x))! R1,F (CG(B; x;A))! R2,H(CG(x;A;B))! R3,G(B;B;B)! R4,G(A;B; x)! CG(A;B; x),G(B; x;A)! CG(B; x;A),G(x;A;B)! CG(x;A;B).5

We note that # is orthogonal but that it is not strongly sequential as G(;;)does not have an index for nf ?. However is strongly sequential.The following denition expresses the most comprehensive meaning of a function ina system. Let P(S) denote the powerset of S.Denition 4.1 For a reduction system operating in T , the meaning function mapseach symbol f 2 F to a function (f) : (T )k ! P(T ) such that (f)(T1; : : : ; Tk) =fU j f(T1; : : : ; Tk) ! U in g.# is expected to deal with terms in T (F#) which contains T (F) as a subset. Themap h : T (F#)! T (F) is dened as h(E) = D where D is obtained from E by replacingevery occurrence of Cf in E by f , for every f 2 FF . Clearly, h(t0[T ]) = h(t00[T ]) = T .We give now Thatte's theorem. It shows the possibility of simulating an orthogonalsystem with a constructor system.Theorem 4.1 [8] For all f 2 F , (f) h #(f) in the sense that, for each(T1; : : : ; Tk) 2 (T (F))k, (f)(T1; : : : ; Tk) = h(#(f)(T1; : : : ; Tk)) where k is the arityof f .We give now several simple lemmas (most of them involving the transformation t0).They will be used in Section 6. We omit their trivial proofs.Lemma 4.1 Let T be an -term. The following equalities hold:O(T ) = O(t0[T ])O(T ) = O(t0[T ])O(T ) = O(t0[T ])Lemma 4.2 Let T be an -term. Let u 2 O(T ).t0[T [u ]] = t0[T ][u ].Lemma 4.3 Let T and S be two -terms such that T < S.t0[T ] < t0[S].Lemma 4.4 If P is a proper preredex,Then t0[P ] is a proper preredex of #.Lemma 4.5 If an -term T matches L,Then t0[T ] matches t0[L].Lemma 4.6 Let T be an -term, L be a term. If T matches L and u 2 O(L),Then u 2 O(T ) and T=u matches L=u.5 Constructor Equivalent SystemsRemark 1: If a system is not orthogonal then # is not orthogonal.Remark 2: Example 4.1 shows that given a strongly sequential system , # is notnecessarily strongly sequential. 6

5.1 Denition of Constructor Equivalent SystemsThatte's transformation and the previous remarks incited us to dene a new subclass ofSS [2].Denition 5.1 Let be an orthogonal TRS. is constructor equivalent if and only if# is strongly sequential.We denote the class of constructor equivalent systems by CE.5.2 Simple Characterization of Constructor Equivalent SystemsThe following property is a characterization of constructor equivalent systems as shownin [2].Property 5.1 8N 2 Red 0, 8M N , 9u 2 O(M ), 8N 0 2 Red 0 s.t. M N 0,N 0=u 6= .Theorem 5.1 Characterization Theorem.An orthogonal system is constructor equivalent if and only if Property 5.1 holds.The following proposition was proved in [2] by showing that CE is a strict subset ofthe forward-branching class [7]. The forward-branching class was shown to be a strictsubclass of SS in [1].Proposition 5.1 CE SS.In this article we want to independize our work from [1]: in the next section we provethe proposition directly (i.e. without using the forward-branching class).6 Constructor Equivalent Systems are Strongly Se-quentialFrom now on, we will always deal with two TRSs: an orthogonal TRS and the TRS# obtained from by Thatte's transformation as described in Section 4. When usingnotions related to we omit to specify ; when using notions related to #, we specifyexplicitely #.Denition 6.1 Let M be an -term built with proper preredexes only.A set D(M ) = f< ui; Pi >j 0 i < ng is a decomposition of M into proper preredexes ifevery Pi is a proper preredex and M is the nth term of the sequence dened by M0 = ;Mi+1 =Mi[ui Pi]:Fig. 1 shows a representation of a decomposition of an -term M .Example 6.1 Let be the system of Example 4.1.Let M be the -term G(F (G(;;));; G(;;)).D1 = f< ; G(;;) >;< 1; F (G(;;))>;< 3; G(;;)>g7

P1

P2

P3

P4

P7

P5

P6

u2

u1

M

P0Figure 1: Decomposition of an -term Mand D2 = f< ; G(;;) >;< 1; F () >;< 1:1; G(;;)>;< 3; G(;;)>gare two decompositions of M for .Lemma 6.1 Let M be an -term built with proper preredexes only.There exists a unique decomposition of M into proper preredexesD(M ) = f< ui; Pi >j 0 i < ngsuch that no strict subterm of a Pi is a proper preredex.PROOF Easy. 2Denition 6.2 Let M be an -term built with proper preredexes only.Let D(M ) = f< ui; Pi >j 0 i < ng be a decomposition of M into proper preredexes.D(M ) is the nest decomposition of M into proper preredexes if no strict subterm of aPi is a proper preredex. Note that the nest decomposition is well-dened according tothe previous lemma.Example 6.2 Decomposition D2 given in Example 6.1 is the nest decomposition ofMfor .Denition 6.3 Let M be an -term built with proper preredexes only and given bythe decomposition D(M ) = f< ui; Pi >j 0 i < ng. By M#, we denote the -termof T (F#) given by the decomposition D(M#) = f< ui; t0[Pi] >j 0 i < ng. (M# isobtained from M by replacing all proper preredexes Pi by t0[Pi]).Fig. 2 shows the -term M# for the decomposition of M given in Fig. 1.Lemma 6.2 Let M be an -term built with proper preredexes only and given by thedecomposition D(M ) = f< ui; Pi >j 0 i < ng. If # is not ambiguous and M is in-normal form,Then M# is in #--normal form. 8

M#

t’[P ]

t’[P ]

t’[P ]

t’[P ]

t’[P ]

t’[P ] t’[P ]

t’[P ]

1

2

3 7

6

4

5

0Figure 2: Decomposition of the -term M#PROOF Suppose that M# is not in #--normal form. Then it contains a #-redex.This redex appears necessarily at an occurrence ui (0 i < n) because no functionsymbol appears inside t0[Pi] for all i.Let L# be the redex scheme of # associated with the left-hand side which matchesthe #-redex M#=ui.As # is a constructor system, L# does not contain any function symbol except atthe root. So, L# t0[Pi]. From Lemma 4.4, t0[Pi] is a proper preredex of #. Weconclude that # is ambiguous. Contradiction. 2Lemma 6.3 Let M be an -term built with proper preredexes only and given by thedecomposition D(M ) = f< ui; Pi >j 0 i < ng:Then, O(M ) = O(M#) and O(M ) = O(M#):PROOF Trivial. 2P

0

P1

1u

um-1

N

...

Pn-1Figure 3: A tower of proper preredexesDenition 6.4 Let N be an -term built with proper preredexes only. N is a tower ofproper preredexes if it has a decomposition into proper preredexesD(N ) = f< ui; Pi >j 0 i < ngsuch that uj < uk for j < k . 9

Example 6.3 and Fig. 3 illustrate the previous denition.Example 6.3 Let be the system of Example 4.1.The -term N = G(F (G(;;));;) is a tower of preredexes given by the decompo-sition D(N ) = f< ; G(;;) >;< 1; F () >;< 1:1; G(;;)>gu

mu

mu

m

mt’[P ]

P

0

P

v

T

P

P

P

v

L

P

y

P

P

x

v

y

m

P

1

0 0

m m

t’[P ] t’[P ]

N[v ]

t’[T]/u

m m

1 1

t’[L]/um m

... ......

mt’[P [v/u ]]

m Figure 4: Illustration of Lemma 6.4Lemma 6.4 Let N be a tower of preredexes given by the decompositionD(N ) = f< ui; Pi >j 0 i < m + 1g:Let v 2 O(N ) such that v > um.Let T be an -term and L a left-hand side such that N [v ] < T , T matches L andum 2 O(L),Then, t0[Pm[v=um ]] is #-redex compatible.This lemma is illustrated by Fig. 4.PROOF As T matches L and um 2 O(L), using Lemma 4.6, we get T=um matchesL=um. Now using Lemma 4.5, we get t0[T=um] matches t0[L=um]. (1)From T > N [v ], we get T=um > N [v ]=um. (2)N [v ]=um = Pm[v=um ]. (3)From (2) and (3), we get T=um > Pm[v=um ]. (4)From (4) and Lemma 4.3, we get t0[T=um] > t0[Pm[v=um ]]. (5)As root(L=um) 6= , root(L=um) is a function symbol so by Thatte's transformation10

uk

uk

uk

uk

*

Ω

*

Ω

P0

P0

N [v ]#

M[v ]

#M [v ]

v

v

v

v

t’[P ]

Pk

t’[P ]

... ...

... ...

......

...

t’[P ] t’[P ]

t’[P ] t’[P ]

00

kk

Ω

Ω

Ω

Ω

ΩΩ

Ω Ω

P

Pk

...

P

Ω

Ω

u u

u um

m

m

m

m

m

m

m

Σ #

N[v ]

Figure 5: Illustration of Lemma 6.5t0[L=um] is a left-hand side of #. (6)From (1), (5) and (6), t0[Pm[v=um ]] is #-redex compatible. 2Lemma 6.5 Let M be a minimal free -term given by its nest decompositionD(M ) = f< ui; Pi >j 0 i < ng:Then, I#(M#) = ;.This lemma is illustrated by Fig. 5 and Fig. 6.PROOF Let v 2 O(M#). From Lemma 6.3, v 2 O(M ).As M is a free -term, we have v 62 I(M ) and by Lemma 3.1, v 62 O(!(M [v ])).11

L

...u /u

m ku /u

m k

N[v ]/

Pk

...

P

ΩΩ

m

uk

Ω Figure 6: Illustration of Lemma 6.5In an -reduction from M [v ] to its -normal form !(M [v ]) reductions occurat uis only (because we consider the nest decomposition).As every Pi is a preredex, every Pi such that ui 6< v -reduces to . SoM [v ] ! N [v ]with N being the tower given by the decomposition:D(N ) = f< uj; Pj >2 D(M ) j uj < vgIn the same way, as from Lemma 4.4 each t0[Pi] is a preredex of #, we haveM#[v ]# ! N#[v ]with N# being the tower given by the decomposition:D(N#) = f< uj ; t0[Pj] >2 D(M#) j uj < vg:By con uence of -reduction,N [v ] ! !(M [v ]):. But as v 62 O(!(M [v ])), this -reduction contains at least one step. So, 9ksuch that < uk; Pk >2 D(N ) and N [v ]=uk is redex compatible. This means thatN [v ]=uk can be rened to a redex R. Let us consider L the left-hand side matchingR and L the corresponding redex scheme.Let us consider m s.t. < um; Pm >2 D(N ) and s.t. 8j 6= m s.t. < uj ; Pj >2 D(N ),uj < um.FACT: um=uk 2 O(L).PROOF Suppose that um=uk 62 O(L). Then N [um ]=uk is redex com-patible. So, !(N [um ]) = !(N [uk ]).Now, !(M [um ]) = !(N [um ]) = !(N [uk ]).We have also !(M [um ]) = !(N [um ]) = !(N [uk ]).So we have !(N [um ]) = !(M [um ]) which means by Lemma 3.1 thatum 62 I(M [um ]). This contradicts Proposition 3.4 which says that if Mis a minimal free term I(M [um ]) = fumg: 212

The hypothesis of Lemma 6.4 are satised so t0[Pm[v=um ]] is #-redex compatible.But t0[Pm[v=um ]] = t0[Pm][v=um ] = N#[v ]=um.So, N#[v ]=um is #-redex compatible and we have the following step of -reduction:N#[v ]=um #! N#[um ]:By con uence of -reduction,N#[v ]=um # ! !#(M#[v ]):As, v 62 O(N#[um ]), we have also v 62 O(!#(M#[v ])). So by Lemma 3.1,v 62 I#(M#). 2Proposition 6.1 Let be an orthogonal TRS. # 2 SS ) 2 SS .PROOF Suppose that 62 SS .Then, from Proposition 3.3, there exists a minimal free -term M 2 T () which isbuilt with proper preredexes only.Let D(M ) = f< ui; Pi >j 0 i < ng be the nest decomposition of M into prere-dexes.As # 2 SS , it is not ambiguous. From Lemma 6.2,M# is in #--normal form. (1).From Lemma 6.5, I#(M#) = ;. (2).From (1), (2) and the denition of SS , we conclude that # 62 SS . Contradiction. 2Corollary 6.1 CE SS.References[1] Irene Durand. Bounded, strongly sequential and forward-branching term rewritingsystems. Technical Report 92-23, LABRI, 1992. To appear in Journal of SymbolicComputation.[2] Irene Durand and Bruno Salinier. Constructor equivalent term rewriting systems.Information Processing Letters, 47:131137, 1993.[3] Gerard Huet and Jean-Jacques Levy. Computations in non-ambiguous linear termrewriting systems. Technical Report 359, INRIA, 1979.[4] Gerard Huet and Jean-Jacques Levy. Computations in orthogonal term rewritingsystems. In Jean-Louis Lassez and Gordon Plotkin, editors, Computational Logic:Essays in Honor of Alan Robinson, pages 397443. MIT Press, 1991.[5] Gerard Huet and D. C. Oppen. Equations and rewrite rules: A survey. In R. Book,editor, Formal Language Theory: Perspectives and Open Problems, pages 349405.Academic Press, 1980.[6] Jan Willem Klop and Aart Middeldorp. Sequentiality in orthogonal term rewritingsystems. Journal of Symbolic Computation, pages 161195, 1991.[7] Robert I. Strandh. Compiling Equational Programs into Ecient Machine Code.PhD thesis, Johns Hopkins University, Baltimore, Maryland, 1988.[8] Satish Thatte. On the correspondence between two classes of reduction systems.Information Processing Letters 20, pages 8385, 1985.13