fbpx
Wikipedia

Reduction strategy

In rewriting, a reduction strategy or rewriting strategy is a relation specifying a rewrite for each object or term, compatible with a given reduction relation.[1] Some authors use the term to refer to an evaluation strategy.[2][3]

Definitions edit

Formally, for an abstract rewriting system  , a reduction strategy   is a binary relation on   with   , where   is the transitive closure of   (but not the reflexive closure).[1] In addition the normal forms of the strategy must be the same as the normal forms of the original rewriting system, i.e. for all  , there exists a   with   iff  .[4]

A one step reduction strategy is one where  . Otherwise it is a many step strategy.[5]

A deterministic strategy is one where   is a partial function, i.e. for each   there is at most one   such that  . Otherwise it is a nondeterministic strategy.[5]

Term rewriting edit

In a term rewriting system a rewriting strategy specifies, out of all the reducible subterms (redexes), which one should be reduced (contracted) within a term.

One-step strategies for term rewriting include:[5]

  • leftmost-innermost: in each step the leftmost of the innermost redexes is contracted, where an innermost redex is a redex not containing any redexes[6]
  • leftmost-outermost: in each step the leftmost of the outermost redexes is contracted, where an outermost redex is a redex not contained in any redexes[6]
  • rightmost-innermost, rightmost-outermost: similarly

Many-step strategies include:[5]

  • parallel-innermost: reduces all innermost redexes simultaneously. This is well-defined because the redexes are pairwise disjoint.
  • parallel-outermost: similarly
  • Gross-Knuth reduction,[7] also called full substitution or Kleene reduction:[5] all redexes in the term are simultaneously reduced

Parallel outermost and Gross-Knuth reduction are hypernormalizing for all almost-orthogonal term rewriting systems, meaning that these strategies will eventually reach a normal form if it exists, even when performing (finitely many) arbitrary reductions between successive applications of the strategy.[8]

Stratego is a domain-specific language designed specifically for programming term rewriting strategies.[9]

Lambda calculus edit

In the context of the lambda calculus, normal-order reduction refers to leftmost-outermost reduction in the sense given above.[10] Normal-order reduction is normalizing, in the sense that if a term has a normal form, then normal‐order reduction will eventually reach it, hence the name normal. This is known as the standardization theorem.[11][12]

Leftmost reduction is sometimes used to refer to normal order reduction, as with a pre-order traversal the notions coincide, and similarly the leftmost-outermost redex is the redex with leftmost starting character when the lambda term is considered as a string of characters.[13][14] When "leftmost" is defined using an in-order traversal the notions are distinct. For example, in the term   with   defined here, the leftmost redex of the in-order traversal is   while the leftmost-outermost redex is the entire expression.[15]

Applicative order reduction refers to leftmost-innermost reduction.[10] In contrast to normal order, applicative order reduction may not terminate, even when the term has a normal form.[10] For example, using applicative order reduction, the following sequence of reductions is possible:

 

But using normal-order reduction, the same starting point reduces quickly to normal form:

 
 

Full β-reduction refers to the nondeterministic one-step strategy that allows reducing any redex at each step.[3] Takahashi's parallel β-reduction is the strategy that reduces all redexes in the term simultaneously.[16]

Weak reduction edit

Normal and applicative order reduction are strong in that they allow reduction under lambda abstractions. In contrast, weak reduction does not reduce under a lambda abstraction.[17] Call-by-name reduction is the weak reduction strategy that reduces the leftmost outermost redex not inside a lambda abstraction, while call-by-value reduction is the weak reduction strategy that reduces the leftmost innermost redex not inside a lambda abstraction. These strategies were devised to reflect the call-by-name and call-by-value evaluation strategies.[18] In fact, applicative order reduction was also originally introduced to model the call-by-value parameter passing technique found in Algol 60 and modern programming languages. When combined with the idea of weak reduction, the resulting call-by-value reduction is indeed a faithful approximation.[19]

Unfortunately, weak reduction is not confluent,[17] and the traditional reduction equations of the lambda calculus are useless, because they suggest relationships that violate the weak evaluation regime.[19] However, it is possible to extend the system to be confluent by allowing a restricted form of reduction under an abstraction, in particular when the redex does not involve the variable bound by the abstraction.[17] For example, λx.(λy.x)z is in normal form for a weak reduction strategy because the redex y.x)z is contained in a lambda abstraction. But the term λx.(λy.y)z can still be reduced under the extended weak reduction strategy, because the redex y.y)z does not refer to x.[20]

Optimal reduction edit

Optimal reduction is motivated by the existence of lambda terms where there does not exist a sequence of reductions which reduces them without duplicating work. For example, consider

((λg.(g(g(λx.x)))) (λh.((λf.(f(f(λz.z)))) (λw.(h(w(λy.y))))))) 

It is composed of three nested terms, x=((λg. ... ) (λh.y)), y=((λf. ...) (λw.z) ), and z=λw.(h(w(λy.y))). There are only two possible β-reductions to be done here, on x and on y. Reducing the outer x term first results in the inner y term being duplicated, and each copy will have to be reduced, but reducing the inner y term first will duplicate its argument z, which will cause work to be duplicated when the values of h and w are made known.[a]

Optimal reduction is not a reduction strategy for the lambda calculus in a narrow sense because performing β-reduction loses the information about the substituted redexes being shared. Instead it is defined for the labelled lambda calculus, an annotated lambda calculus which captures a precise notion of the work that should be shared.[21]: 113–114 

Labels consist of a countably infinite set of atomic labels, and concatenations  , overlinings   and underlinings   of labels. A labelled term is a lambda calculus term where each subterm has a label. The standard initial labeling of a lambda term gives each subterm a unique atomic label.[21]: 132  Labelled β-reduction is given by:[22]

 

where   concatenates labels,  , and substitution   is defined as follows (using the Barendregt convention):[22]

 
The system can be proven to be confluent. Optimal reduction is then defined to be normal order or leftmost-outermost reduction using reduction by families, i.e. the parallel reduction of all redexes with the same function part label.[23] The strategy is optimal in the sense that it performs the optimal (minimal) number of family reduction steps.[24]

A practical algorithm for optimal reduction was first described in 1989,[25] more than a decade after optimal reduction was first defined in 1974.[26] The Bologna Optimal Higher-order Machine (BOHM) is a prototype implementation of an extension of the technique to interaction nets.[21]: 362 [27] Lambdascope is a more recent implementation of optimal reduction, also using interaction nets.[28][b]

Call by need reduction edit

Call by need reduction can be defined similarly to optimal reduction as weak leftmost-outermost reduction using parallel reduction of redexes with the same label, for a slightly different labelled lambda calculus.[17] An alternate definition changes the beta rule to an operation that finds the next "needed" computation, evaluates it, and substitutes the result into all locations. This requires extending the beta rule to allow reducing terms that are not syntactically adjacent.[29] As with call-by-name and call-by-value, call-by-need reduction was devised to mimic the behavior of the evaluation strategy known as "call-by-need" or lazy evaluation.

See also edit

Notes edit

  1. ^ Incidentally, the above term reduces to the identity function (λy.y), and is constructed by making wrappers which make the identity function available to the binders g=λh..., f=λw..., h=λx.x (at first), and w=λz.z (at first), all of which are applied to the innermost term λy.y.
  2. ^ A summary of recent research on optimal reduction can be found in the short article About the efficient reduction of lambda terms.

References edit

  1. ^ a b Kirchner, Hélène (26 August 2015). "Rewriting Strategies and Strategic Rewrite Programs". In Martí-Oliet, Narciso; Ölveczky, Peter Csaba; Talcott, Carolyn (eds.). Logic, Rewriting, and Concurrency: Essays Dedicated to José Meseguer on the Occasion of His 65th Birthday. Springer. ISBN 978-3-319-23165-5. Retrieved 14 August 2021.
  2. ^ Selinger, Peter; Valiron, Benoît (2009). "Quantum Lambda Calculus" (PDF). Semantic Techniques in Quantum Computation: 23. doi:10.1017/CBO9781139193313.005. ISBN 9780521513746. Retrieved 21 August 2021.
  3. ^ a b Pierce, Benjamin C. (2002). Types and Programming Languages. MIT Press. p. 56. ISBN 0-262-16209-1.
  4. ^ Klop, Jan Willem; van Oostrom, Vincent; van Raamsdonk, Femke (2007). "Reduction Strategies and Acyclicity" (PDF). Rewriting, Computation and Proof. Lecture Notes in Computer Science. Vol. 4600. pp. 89–112. CiteSeerX 10.1.1.104.9139. doi:10.1007/978-3-540-73147-4_5. ISBN 978-3-540-73146-7.
  5. ^ a b c d e Klop, J. W. "Term Rewriting Systems" (PDF). Papers by Nachum Dershowitz and students. Tel Aviv University. p. 77. Retrieved 14 August 2021.
  6. ^ a b Horwitz, Susan B. "Lambda Calculus". CS704 Notes. University of Wisconsin Madison. Retrieved 19 August 2021.
  7. ^ Barendregt, H. P.; Eekelen, M. C. J. D.; Glauert, J. R. W.; Kennaway, J. R.; Plasmeijer, M. J.; Sleep, M. R. (1987). Term graph rewriting. Parallel Architectures and Languages Europe. Vol. 259. pp. 141–158. doi:10.1007/3-540-17945-3_8.
  8. ^ Antoy, Sergio; Middeldorp, Aart (September 1996). "A sequential reduction strategy" (PDF). Theoretical Computer Science. 165 (1): 75–95. doi:10.1016/0304-3975(96)00041-2. Retrieved 8 September 2021.
  9. ^ Kieburtz, Richard B. (November 2001). "A Logic for Rewriting Strategies". Electronic Notes in Theoretical Computer Science. 58 (2): 138–154. doi:10.1016/S1571-0661(04)00283-X.
  10. ^ a b c Mazzola, Guerino; Milmeister, Gérard; Weissmann, Jody (21 October 2004). Comprehensive Mathematics for Computer Scientists 2. Springer Science & Business Media. p. 323. ISBN 978-3-540-20861-7.
  11. ^ Curry, Haskell B.; Feys, Robert (1958). Combinatory Logic. Vol. I. Amsterdam: North Holland. pp. 139–142. ISBN 0-7204-2208-6.
  12. ^ Kashima, Ryo. "A Proof of the Standardization Theorem in λ-Calculus" (PDF). Tokyo Institute of Technology. Retrieved 19 August 2021.
  13. ^ Vial, Pierre (7 December 2017). Non-Idempotent Typing Operators, beyond the λ-Calculus (PDF) (PhD). Sorbonne Paris Cité. p. 62.
  14. ^ Partain, William D. (December 1989). Graph Reduction Without Pointers (PDF) (PhD). University of North Carolina at Chapel Hill. Retrieved 10 January 2022.
  15. ^ Van Oostrom, Vincent; Toyama, Yoshihito (2016). Normalisation by Random Descent (PDF). 1st International Conference on Formal Structures for Computation and Deduction. p. 32:3. doi:10.4230/LIPIcs.FSCD.2016.32.
  16. ^ Takahashi, M. (April 1995). "Parallel Reductions in λ-Calculus". Information and Computation. 118 (1): 120–127. doi:10.1006/inco.1995.1057.
  17. ^ a b c d Blanc, Tomasz; Lévy, Jean-Jacques; Maranget, Luc (2005). "Sharing in the Weak Lambda-Calculus". Processes, Terms and Cycles: Steps on the Road to Infinity: Essays Dedicated to Jan Willem Klop on the Occasion of His 60th Birthday. Springer. pp. 70–87. CiteSeerX 10.1.1.129.147. doi:10.1007/11601548_7. ISBN 978-3-540-32425-6.
  18. ^ Sestoft, Peter (2002). Mogensen, T; Schmidt, D; Sudborough, I. H. (eds.). Demonstrating Lambda Calculus Reduction (PDF). Lecture Notes in Computer Science. Vol. 2566. Springer-Verlag. pp. 420–435. ISBN 3-540-00326-6. {{cite book}}: |work= ignored (help)
  19. ^ a b Felleisen, Matthias (2009). Semantics engineering with PLT Redex. Cambridge, Mass.: MIT Press. p. 42. ISBN 978-0262062756.
  20. ^ Sestini, Filippo (2019). Normalization by Evaluation for Typed Weak lambda-Reduction (PDF). 24th International Conference on Types for Proofs and Programs (TYPES 2018). doi:10.4230/LIPIcs.TYPES.2018.6.
  21. ^ a b c Asperti, Andrea; Guerrini, Stefano (1998). The optimal implementation of functional programming languages. Cambridge, UK: Cambridge University Press. ISBN 0521621127.
  22. ^ a b Fernández, Maribel; Siafakas, Nikolaos (30 March 2010). "Labelled Lambda-calculi with Explicit Copy and Erase". Electronic Proceedings in Theoretical Computer Science. 22: 49–64. arXiv:1003.5515v1. doi:10.4204/EPTCS.22.5. S2CID 15500633.
  23. ^ Lévy, Jean-Jacques (9–11 November 1987). Sharing in the Evaluation of lambda Expressions (PDF). Second Franco-Japanese Symposium on Programming of Future Generation Computers. Cannes, France. p. 187. ISBN 0444705260.
  24. ^ Terese (2003). Term rewriting systems. Cambridge, UK: Cambridge University Press. p. 518. ISBN 978-0-521-39115-3.
  25. ^ Lamping, John (1990). An algorithm for optimal lambda calculus reduction (PDF). 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '90. pp. 16–30. doi:10.1145/96709.96711.
  26. ^ Lévy, Jean-Jacques (June 1974). Réductions sures dans le lambda-calcul (PDF) (PhD) (in French). Université Paris VII. pp. 81–109. OCLC 476040273. Retrieved 17 August 2021.
  27. ^ Asperti, Andrea. "Bologna Optimal Higher-Order Machine, Version 1.1". GitHub.
  28. ^ van Oostrom, Vincent; van de Looij, Kees-Jan; Zwitserlood, Marijn (2004). ] (Lambdascope): Another optimal implementation of the lambda-calculus (PDF). Workshop on Algebra and Logic on Programming Systems (ALPS).
  29. ^ Chang, Stephen; Felleisen, Matthias (2012). "The Call-by-Need Lambda Calculus, Revisited" (PDF). Programming Languages and Systems. Lecture Notes in Computer Science. Vol. 7211. pp. 128–147. doi:10.1007/978-3-642-28869-2_7. ISBN 978-3-642-28868-5. S2CID 6350826.

External links edit

  • Lambda calculus reduction workbench

reduction, strategy, rewriting, reduction, strategy, rewriting, strategy, relation, specifying, rewrite, each, object, term, compatible, with, given, reduction, relation, some, authors, term, refer, evaluation, strategy, contents, definitions, term, rewriting,. In rewriting a reduction strategy or rewriting strategy is a relation specifying a rewrite for each object or term compatible with a given reduction relation 1 Some authors use the term to refer to an evaluation strategy 2 3 Contents 1 Definitions 2 Term rewriting 3 Lambda calculus 3 1 Weak reduction 3 2 Optimal reduction 3 3 Call by need reduction 4 See also 5 Notes 6 References 7 External linksDefinitions editFormally for an abstract rewriting system A displaystyle A to nbsp a reduction strategy S displaystyle to S nbsp is a binary relation on A displaystyle A nbsp with S displaystyle to S subseteq overset to nbsp where displaystyle overset to nbsp is the transitive closure of displaystyle to nbsp but not the reflexive closure 1 In addition the normal forms of the strategy must be the same as the normal forms of the original rewriting system i e for all a displaystyle a nbsp there exists a b displaystyle b nbsp with a b displaystyle a to b nbsp iff b a S b displaystyle exists b a to S b nbsp 4 A one step reduction strategy is one where S displaystyle to S subseteq to nbsp Otherwise it is a many step strategy 5 A deterministic strategy is one where S displaystyle to S nbsp is a partial function i e for each a A displaystyle a in A nbsp there is at most one b displaystyle b nbsp such that a S b displaystyle a to S b nbsp Otherwise it is a nondeterministic strategy 5 Term rewriting editIn a term rewriting system a rewriting strategy specifies out of all the reducible subterms redexes which one should be reduced contracted within a term One step strategies for term rewriting include 5 leftmost innermost in each step the leftmost of the innermost redexes is contracted where an innermost redex is a redex not containing any redexes 6 leftmost outermost in each step the leftmost of the outermost redexes is contracted where an outermost redex is a redex not contained in any redexes 6 rightmost innermost rightmost outermost similarlyMany step strategies include 5 parallel innermost reduces all innermost redexes simultaneously This is well defined because the redexes are pairwise disjoint parallel outermost similarly Gross Knuth reduction 7 also called full substitution or Kleene reduction 5 all redexes in the term are simultaneously reducedParallel outermost and Gross Knuth reduction are hypernormalizing for all almost orthogonal term rewriting systems meaning that these strategies will eventually reach a normal form if it exists even when performing finitely many arbitrary reductions between successive applications of the strategy 8 Stratego is a domain specific language designed specifically for programming term rewriting strategies 9 Lambda calculus editMain article Lambda calculus Reduction strategies In the context of the lambda calculus normal order reduction refers to leftmost outermost reduction in the sense given above 10 Normal order reduction is normalizing in the sense that if a term has a normal form then normal order reduction will eventually reach it hence the name normal This is known as the standardization theorem 11 12 Leftmost reduction is sometimes used to refer to normal order reduction as with a pre order traversal the notions coincide and similarly the leftmost outermost redex is the redex with leftmost starting character when the lambda term is considered as a string of characters 13 14 When leftmost is defined using an in order traversal the notions are distinct For example in the term l x x W l y I displaystyle lambda x x Omega lambda y I nbsp with W I displaystyle Omega I nbsp defined here the leftmost redex of the in order traversal is W displaystyle Omega nbsp while the leftmost outermost redex is the entire expression 15 Applicative order reduction refers to leftmost innermost reduction 10 In contrast to normal order applicative order reduction may not terminate even when the term has a normal form 10 For example using applicative order reduction the following sequence of reductions is possible l x z l w w w w l w w w w l x z l w w w w l w w w w l w w w w l x z l w w w w l w w w w l w w w w l w w w w l x z l w w w w l w w w w l w w w w l w w w w l w w w w displaystyle begin aligned amp mathbf lambda x z lambda w www lambda w www rightarrow amp lambda x z lambda w www lambda w www lambda w www rightarrow amp lambda x z lambda w www lambda w www lambda w www lambda w www rightarrow amp lambda x z lambda w www lambda w www lambda w www lambda w www lambda w www amp ldots end aligned nbsp But using normal order reduction the same starting point reduces quickly to normal form l x z l w w w w l w w w w displaystyle mathbf lambda x z lambda w www lambda w www nbsp z displaystyle rightarrow z nbsp Full b reduction refers to the nondeterministic one step strategy that allows reducing any redex at each step 3 Takahashi s parallel b reduction is the strategy that reduces all redexes in the term simultaneously 16 Weak reduction edit Normal and applicative order reduction are strong in that they allow reduction under lambda abstractions In contrast weak reduction does not reduce under a lambda abstraction 17 Call by name reduction is the weak reduction strategy that reduces the leftmost outermost redex not inside a lambda abstraction while call by value reduction is the weak reduction strategy that reduces the leftmost innermost redex not inside a lambda abstraction These strategies were devised to reflect the call by name and call by value evaluation strategies 18 In fact applicative order reduction was also originally introduced to model the call by value parameter passing technique found in Algol 60 and modern programming languages When combined with the idea of weak reduction the resulting call by value reduction is indeed a faithful approximation 19 Unfortunately weak reduction is not confluent 17 and the traditional reduction equations of the lambda calculus are useless because they suggest relationships that violate the weak evaluation regime 19 However it is possible to extend the system to be confluent by allowing a restricted form of reduction under an abstraction in particular when the redex does not involve the variable bound by the abstraction 17 For example lx ly x z is in normal form for a weak reduction strategy because the redex ly x z is contained in a lambda abstraction But the term lx ly y z can still be reduced under the extended weak reduction strategy because the redex ly y z does not refer to x 20 Optimal reduction edit Optimal reduction is motivated by the existence of lambda terms where there does not exist a sequence of reductions which reduces them without duplicating work For example consider lg g g lx x lh lf f f lz z lw h w ly y It is composed of three nested terms x lg lh y y lf lw z and z lw h w ly y There are only two possible b reductions to be done here on x and on y Reducing the outer x term first results in the inner y term being duplicated and each copy will have to be reduced but reducing the inner y term first will duplicate its argument z which will cause work to be duplicated when the values of h and w are made known a Optimal reduction is not a reduction strategy for the lambda calculus in a narrow sense because performing b reduction loses the information about the substituted redexes being shared Instead it is defined for the labelled lambda calculus an annotated lambda calculus which captures a precise notion of the work that should be shared 21 113 114 Labels consist of a countably infinite set of atomic labels and concatenations a b displaystyle ab nbsp overlinings a displaystyle overline a nbsp and underlinings a displaystyle underline a nbsp of labels A labelled term is a lambda calculus term where each subterm has a label The standard initial labeling of a lambda term gives each subterm a unique atomic label 21 132 Labelled b reduction is given by 22 l x M a N b b a M x a N displaystyle lambda x M alpha N beta to beta overline alpha cdot M x mapsto underline alpha cdot N nbsp where displaystyle cdot nbsp concatenates labels b T a T b a displaystyle beta cdot T alpha T beta alpha nbsp and substitution M x N displaystyle M x mapsto N nbsp is defined as follows using the Barendregt convention 22 x a x N a N l y M a x N l y M x N a y a x N y a M N a x P M x P N x P a displaystyle begin aligned x alpha x mapsto N amp alpha cdot N amp quad lambda y M alpha x mapsto N amp lambda y M x mapsto N alpha y alpha x mapsto N amp y alpha amp quad MN alpha x mapsto P amp M x mapsto P N x mapsto P alpha end aligned nbsp The system can be proven to be confluent Optimal reduction is then defined to be normal order or leftmost outermost reduction using reduction by families i e the parallel reduction of all redexes with the same function part label 23 The strategy is optimal in the sense that it performs the optimal minimal number of family reduction steps 24 A practical algorithm for optimal reduction was first described in 1989 25 more than a decade after optimal reduction was first defined in 1974 26 The Bologna Optimal Higher order Machine BOHM is a prototype implementation of an extension of the technique to interaction nets 21 362 27 Lambdascope is a more recent implementation of optimal reduction also using interaction nets 28 b Call by need reduction edit Call by need reduction can be defined similarly to optimal reduction as weak leftmost outermost reduction using parallel reduction of redexes with the same label for a slightly different labelled lambda calculus 17 An alternate definition changes the beta rule to an operation that finds the next needed computation evaluates it and substitutes the result into all locations This requires extending the beta rule to allow reducing terms that are not syntactically adjacent 29 As with call by name and call by value call by need reduction was devised to mimic the behavior of the evaluation strategy known as call by need or lazy evaluation See also editReduction system Reduction semantics ThunkNotes edit Incidentally the above term reduces to the identity function ly y and is constructed by making wrappers which make the identity function available to the binders g lh f lw h lx x at first and w lz z at first all of which are applied to the innermost term ly y A summary of recent research on optimal reduction can be found in the short article About the efficient reduction of lambda terms References edit a b Kirchner Helene 26 August 2015 Rewriting Strategies and Strategic Rewrite Programs In Marti Oliet Narciso Olveczky Peter Csaba Talcott Carolyn eds Logic Rewriting and Concurrency Essays Dedicated to Jose Meseguer on the Occasion of His 65th Birthday Springer ISBN 978 3 319 23165 5 Retrieved 14 August 2021 Selinger Peter Valiron Benoit 2009 Quantum Lambda Calculus PDF Semantic Techniques in Quantum Computation 23 doi 10 1017 CBO9781139193313 005 ISBN 9780521513746 Retrieved 21 August 2021 a b Pierce Benjamin C 2002 Types and Programming Languages MIT Press p 56 ISBN 0 262 16209 1 Klop Jan Willem van Oostrom Vincent van Raamsdonk Femke 2007 Reduction Strategies and Acyclicity PDF Rewriting Computation and Proof Lecture Notes in Computer Science Vol 4600 pp 89 112 CiteSeerX 10 1 1 104 9139 doi 10 1007 978 3 540 73147 4 5 ISBN 978 3 540 73146 7 a b c d e Klop J W Term Rewriting Systems PDF Papers by Nachum Dershowitz and students Tel Aviv University p 77 Retrieved 14 August 2021 a b Horwitz Susan B Lambda Calculus CS704 Notes University of Wisconsin Madison Retrieved 19 August 2021 Barendregt H P Eekelen M C J D Glauert J R W Kennaway J R Plasmeijer M J Sleep M R 1987 Term graph rewriting Parallel Architectures and Languages Europe Vol 259 pp 141 158 doi 10 1007 3 540 17945 3 8 Antoy Sergio Middeldorp Aart September 1996 A sequential reduction strategy PDF Theoretical Computer Science 165 1 75 95 doi 10 1016 0304 3975 96 00041 2 Retrieved 8 September 2021 Kieburtz Richard B November 2001 A Logic for Rewriting Strategies Electronic Notes in Theoretical Computer Science 58 2 138 154 doi 10 1016 S1571 0661 04 00283 X a b c Mazzola Guerino Milmeister Gerard Weissmann Jody 21 October 2004 Comprehensive Mathematics for Computer Scientists 2 Springer Science amp Business Media p 323 ISBN 978 3 540 20861 7 Curry Haskell B Feys Robert 1958 Combinatory Logic Vol I Amsterdam North Holland pp 139 142 ISBN 0 7204 2208 6 Kashima Ryo A Proof of the Standardization Theorem in l Calculus PDF Tokyo Institute of Technology Retrieved 19 August 2021 Vial Pierre 7 December 2017 Non Idempotent Typing Operators beyond the l Calculus PDF PhD Sorbonne Paris Cite p 62 Partain William D December 1989 Graph Reduction Without Pointers PDF PhD University of North Carolina at Chapel Hill Retrieved 10 January 2022 Van Oostrom Vincent Toyama Yoshihito 2016 Normalisation by Random Descent PDF 1st International Conference on Formal Structures for Computation and Deduction p 32 3 doi 10 4230 LIPIcs FSCD 2016 32 Takahashi M April 1995 Parallel Reductions in l Calculus Information and Computation 118 1 120 127 doi 10 1006 inco 1995 1057 a b c d Blanc Tomasz Levy Jean Jacques Maranget Luc 2005 Sharing in the Weak Lambda Calculus Processes Terms and Cycles Steps on the Road to Infinity Essays Dedicated to Jan Willem Klop on the Occasion of His 60th Birthday Springer pp 70 87 CiteSeerX 10 1 1 129 147 doi 10 1007 11601548 7 ISBN 978 3 540 32425 6 Sestoft Peter 2002 Mogensen T Schmidt D Sudborough I H eds Demonstrating Lambda Calculus Reduction PDF Lecture Notes in Computer Science Vol 2566 Springer Verlag pp 420 435 ISBN 3 540 00326 6 a href Template Cite book html title Template Cite book cite book a work ignored help a b Felleisen Matthias 2009 Semantics engineering with PLT Redex Cambridge Mass MIT Press p 42 ISBN 978 0262062756 Sestini Filippo 2019 Normalization by Evaluation for Typed Weak lambda Reduction PDF 24th International Conference on Types for Proofs and Programs TYPES 2018 doi 10 4230 LIPIcs TYPES 2018 6 a b c Asperti Andrea Guerrini Stefano 1998 The optimal implementation of functional programming languages Cambridge UK Cambridge University Press ISBN 0521621127 a b Fernandez Maribel Siafakas Nikolaos 30 March 2010 Labelled Lambda calculi with Explicit Copy and Erase Electronic Proceedings in Theoretical Computer Science 22 49 64 arXiv 1003 5515v1 doi 10 4204 EPTCS 22 5 S2CID 15500633 Levy Jean Jacques 9 11 November 1987 Sharing in the Evaluation of lambda Expressions PDF Second Franco Japanese Symposium on Programming of Future Generation Computers Cannes France p 187 ISBN 0444705260 Terese 2003 Term rewriting systems Cambridge UK Cambridge University Press p 518 ISBN 978 0 521 39115 3 Lamping John 1990 An algorithm for optimal lambda calculus reduction PDF 17th ACM SIGPLAN SIGACT symposium on Principles of programming languages POPL 90 pp 16 30 doi 10 1145 96709 96711 Levy Jean Jacques June 1974 Reductions sures dans le lambda calcul PDF PhD in French Universite Paris VII pp 81 109 OCLC 476040273 Retrieved 17 August 2021 Asperti Andrea Bologna Optimal Higher Order Machine Version 1 1 GitHub van Oostrom Vincent van de Looij Kees Jan Zwitserlood Marijn 2004 Lambdascope Another optimal implementation of the lambda calculus PDF Workshop on Algebra and Logic on Programming Systems ALPS Chang Stephen Felleisen Matthias 2012 The Call by Need Lambda Calculus Revisited PDF Programming Languages and Systems Lecture Notes in Computer Science Vol 7211 pp 128 147 doi 10 1007 978 3 642 28869 2 7 ISBN 978 3 642 28868 5 S2CID 6350826 External links editLambda calculus reduction workbench Retrieved from https en wikipedia org w index php title Reduction strategy amp oldid 1172194209, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.