Abstract
There is growing interest in termination reasoning for nonlinear programs and, meanwhile, recent dynamic strategies have shown they are able to infer invariants for such challenging programs. These advances led us to hypothesize that perhaps such dynamic strategies for nonlinear invariants could be adapted to learn recurrent sets (for non-termination) and/or ranking functions (for termination).
In this paper, we exploit dynamic analysis and draw termination and non-termination as well as static and dynamic strategies closer together in order to tackle nonlinear programs. For termination, our algorithm infers ranking functions from concrete transitive closures, and, for non-termination, the algorithm iteratively collects executions and dynamically learns conditions to refine recurrent sets. Finally, we describe an integrated algorithm that allows these algorithms to mutually inform each other, taking counterexamples from a failed validation in one endeavor and crossing both the static/dynamic and termination/non-termination lines, to create new execution samples for the other one.
We have implemented these algorithms in a new tool called DynamiTe. For nonlinear programs, there are currently no SV-COMP termination benchmarks so we created new sets of 38 terminating and 39 non-terminating programs. Our empirical evaluation shows that we can effectively guess (and sometimes even validate) ranking functions and recurrent sets for programs with nonlinear behaviors. Furthermore, we show that counterexamples from one failed validation can be used to generate executions for a dynamic analysis of the opposite property. Although we are focused on nonlinear programs, as a point of comparison, we compare DynamiTe's performance on linear programs with that of the state-of-the-art tool, Ultimate. Although DynamiTe is an order of magnitude slower it is nonetheless somewhat competitive and sometimes finds ranking functions where Ultimate was unable to. Ultimate cannot, however, handle the nonlinear programs in our new benchmark suite.
Supplemental Material
- AProVE. 2020. AProVE: Automated Program Verification Environment. http://aprove.informatik.rwth-aachen.de/.Google Scholar
- Domagoj Babić, Alan J. Hu, Zvonimir Rakamaric, and Byron Cook. 2007. Proving Termination by Divergence. In Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007 ), 10-14 September 2007, London, England, UK. IEEE Computer Society, 93-102. https://doi.org/10.1109/SEFM. 2007.32 Google Scholar
Digital Library
- Clark Barrett, Christopher L. Conway, Morgan Deters, Liana Hadarean, Dejan Jovanovi'c, Tim King, Andrew Reynolds, and Cesare Tinelli. 2011. CVC4. In Proceedings of the 23rd International Conference on Computer Aided Verification (CAV '11) (Lecture Notes in Computer Science), Ganesh Gopalakrishnan and Shaz Qadeer (Eds.), Vol. 6806. Springer, 171-177. Snowbird, Utah.Google Scholar
Cross Ref
- Dirk Beyer. 2020. Advances in Automatic Software Verification: SV-COMP 2020. In Tools and Algorithms for the Construction and Analysis of Systems-26th International Conference, TACAS 2020, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020, Dublin, Ireland, April 25-30, 2020, Proceedings, Part II (Lecture Notes in Computer Science), Armin Biere and David Parker (Eds.), Vol. 12079. Springer, 347-367. https://doi.org/10.1007/978-3-030-45237-7_21 Google Scholar
Digital Library
- Dirk Beyer and M Erkan Keremoglu. 2011. CPAchecker: A tool for configurable software verification. In International Conference on Computer Aided Verification. Springer, 184-190.Google Scholar
Cross Ref
- Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérome Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. 2003. A static analyzer for large safety-critical software. In Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation. 196-207.Google Scholar
Digital Library
- Aaron R Bradley, Zohar Manna, and Henny B Sipma. 2005a. Linear ranking with reachability. In International Conference on Computer Aided Verification. Springer, 491-504.Google Scholar
Digital Library
- Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005b. The Polyranking Principle. In Automata, Languages and Programming, 32nd International Colloquium, ICALP 2005, Lisbon, Portugal, July 11-15, 2005, Proceedings (Lecture Notes in Computer Science), Luís Caires, Giuseppe F. Italiano, Luís Monteiro, Catuscia Palamidessi, and Moti Yung (Eds.), Vol. 3580. Springer, 1349-1361. https://doi.org/10.1007/11523468_109 Google Scholar
Digital Library
- Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005c. Termination of Polynomial Programs. In Verification, Model Checking, and Abstract Interpretation, 6th International Conference, VMCAI 2005, Paris, France, January 17-19, 2005, Proceedings (Lecture Notes in Computer Science), Radhia Cousot (Ed.), Vol. 3385. Springer, 113-129. https://doi.org/10. 1007/978-3-540-30579-8_8 Google Scholar
Digital Library
- Marc Brockschmidt. 2020. T2: TEMPORAL LOGIC PROVER. https://github.com/mmjb/T2.Google Scholar
- Jacob Burnim, Sudeep Juvekar, and Koushik Sen. 2009. WISE: Automated test generation for worst-case complexity. In 2009 IEEE 31st International Conference on Software Engineering. IEEE, 463-473.Google Scholar
Digital Library
- Hong Yi Chen, Byron Cook, Carsten Fuhs, Kaustubh Nimkar, and Peter W. O'Hearn. 2014. Proving Nontermination via Safety. In Tools and Algorithms for the Construction and Analysis of Systems-20th International Conference, TACAS 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014. Proceedings (Lecture Notes in Computer Science), Erika Ábrahám and Klaus Havelund (Eds.), Vol. 8413. Springer, 156-171. https://doi.org/10.1007/978-3-642-54862-8_11 Google Scholar
Cross Ref
- Byron Cook, Carsten Fuhs, Kaustubh Nimkar, and Peter W. O'Hearn. 2014. Disproving termination with overapproximation. In Formal Methods in Computer-Aided Design, FMCAD 2014, Lausanne, Switzerland, October 21-24, 2014. IEEE, 67-74. https://doi.org/10.1109/FMCAD. 2014.6987597 Google Scholar
Cross Ref
- Byron Cook, Sumit Gulwani, Tal Lev-Ami, Andrey Rybalchenko, and Mooly Sagiv. 2008. Proving Conditional Termination. In Computer Aided Verification, 20th International Conference, CAV 2008, Princeton, NJ, USA, July 7-14, 2008, Proceedings (Lecture Notes in Computer Science), Aarti Gupta and Sharad Malik (Eds.), Vol. 5123. Springer, 328-340. https://doi.org/10. 1007/978-3-540-70545-1_32 Google Scholar
Digital Library
- Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2006. Termination proofs for systems code. In Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, Ottawa, Ontario, Canada, June 11-14, 2006, Michael I. Schwartzbach and Thomas Ball (Eds.). ACM, 415-426. https://doi.org/10.1145/1133981.1134029 Google Scholar
Digital Library
- Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2011. Proving program termination. Commun. ACM 54, 5 ( 2011 ), 88-98. https://doi.org/10.1145/1941487.1941509 Google Scholar
Digital Library
- Patrick Cousot and Radhia Cousot. 2012. An abstract interpretation framework for termination. In Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2012, Philadelphia, Pennsylvania, USA, January 22-28, 2012, John Field and Michael Hicks (Eds.). ACM, 245-258. https://doi.org/10.1145/2103656.2103687 Google Scholar
Digital Library
- CPAChecker. 2020. CPAchecker: The Configurable Software-Verification Platform. https://cpachecker.sosy-lab.org/.Google Scholar
- Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An Eficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings (Lecture Notes in Computer Science), C. R. Ramakrishnan and Jakob Rehof (Eds.), Vol. 4963. Springer, 337-340. https: //doi.org/10.1007/978-3-540-78800-3_24 Google Scholar
Cross Ref
- Daniel Dietsch, Matthias Heizmann, Vincent Langenfeld, and Andreas Podelski. 2015. Fairness Modulo Theory: A New Approach to LTL Software Model Checking. In Computer Aided Verification-27th International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I (Lecture Notes in Computer Science), Daniel Kroening and Corina S. Pasareanu (Eds.), Vol. 9206. Springer, 49-66. https://doi.org/10.1007/978-3-319-21690-4_4 Google Scholar
Cross Ref
- DynamiTe. 2020. Supplemental Materials. https://github.com/letonchanh/dynamite.Google Scholar
- Michael D Ernst, Jake Cockrell, William G Griswold, and David Notkin. 2001. Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering 27, 2 ( 2001 ), 99-123.Google Scholar
Digital Library
- Michael D Ernst, Jef H Perkins, Philip J Guo, Stephen McCamant, Carlos Pacheco, Matthew S Tschantz, and Chen Xiao. 2007. The Daikon system for dynamic detection of likely invariants. Science of computer programming 69, 1-3 ( 2007 ), 35-45.Google Scholar
- Jérôme Feret. 2004. Static analysis of digital filters. In European Symposium on Programming. Springer, 33-48.Google Scholar
Cross Ref
- Florian Frohn and Jürgen Giesl. 2019. Proving Non-Termination via Loop Acceleration. In 2019 Formal Methods in Computer Aided Design, FMCAD 2019, San Jose, CA, USA, October 22-25, 2019, Clark W. Barrett and Jin Yang (Eds.). IEEE, 221-230. https://doi.org/10.23919/FMCAD. 2019.8894271 Google Scholar
Cross Ref
- FuncTion. 2020. FuncTion: An Abstract Domain Functor for Termination. https://www.di.ens.fr/~urban/FuncTion.html.Google Scholar
- Pranav Garg, Christof Löding, P Madhusudan, and Daniel Neider. 2014. ICE: A robust framework for learning invariants. In International Conference on Computer Aided Verification. Springer, 69-87.Google Scholar
Digital Library
- Jürgen Giesl, Marc Brockschmidt, Fabian Emmes, Florian Frohn, Carsten Fuhs, Carsten Otto, Martin Plücker, Peter SchneiderKamp, Thomas Ströder, Stephanie Swiderski, et al. 2014. Proving termination of programs automatically with AProVE. In International Joint Conference on Automated Reasoning. Springer, 184-191.Google Scholar
Cross Ref
- Jürgen Giesl, René Thiemann, Peter Schneider-Kamp, and Stephan Falke. 2004. Automated Termination Proofs with AProVE. In Rewriting Techniques and Applications, 15th International Conference, RTA 2004, Aachen, Germany, June 3-5, 2004, Proceedings (Lecture Notes in Computer Science), Vincent van Oostrom (Ed.), Vol. 3091. Springer, 210-220. https://doi.org/10.1007/978-3-540-25979-4_15 Google Scholar
Cross Ref
- Bhargav S Gulavani and Sumit Gulwani. 2008. A numerical abstract domain based on expression abstraction and max operator with application in timing analysis. In International Conference on Computer Aided Verification. Springer, 370-384.Google Scholar
Digital Library
- Sumit Gulwani. 2009. Speed: Symbolic complexity bound analysis. In International Conference on Computer Aided Verification. Springer, 51-62.Google Scholar
Digital Library
- Sumit Gulwani, Krishna K Mehra, and Trishul Chilimbi. 2009. Speed: precise and eficient static estimation of program computational complexity. ACM Sigplan Notices 44, 1 ( 2009 ), 127-139.Google Scholar
- Ashutosh Gupta, Thomas A. Henzinger, Rupak Majumdar, Andrey Rybalchenko, and Ru-Gang Xu. 2008. Proving nontermination. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008, San Francisco, California, USA, January 7-12, 2008, George C. Necula and Philip Wadler (Eds.). ACM, 147-158. https://doi.org/10.1145/1328438.1328459 Google Scholar
Digital Library
- Arie Gurfinkel, Temesghen Kahsai, Anvesh Komuravelli, and Jorge A Navas. 2015. The SeaHorn verification framework. In International Conference on Computer Aided Verification. Springer, 343-361.Google Scholar
Cross Ref
- William R. Harris, Akash Lal, Aditya V. Nori, and Sriram K. Rajamani. 2010. Alternation for Termination. In Static Analysis-17th International Symposium, SAS 2010, Perpignan, France, September 14-16, 2010. Proceedings (Lecture Notes in Computer Science), Radhia Cousot and Matthieu Martel (Eds.), Vol. 6337. Springer, 304-319. https://doi.org/10.1007/978-3-642-15769-1_19 Google Scholar
Cross Ref
- Jan Hofmann, Klaus Aehlig, and Martin Hofmann. 2011. Multivariate amortized resource analysis. In Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, Austin, TX, USA, January 26-28, 2011, Thomas Ball and Mooly Sagiv (Eds.). ACM, 357-370. https://doi.org/10.1145/1926385.1926427 Google Scholar
Digital Library
- Jan Hofmann and Martin Hofmann. 2010a. Amortized Resource Analysis with Polymorphic Recursion and Partial Big-Step Operational Semantics. In Programming Languages and Systems-8th Asian Symposium, APLAS 2010, Shanghai, China, November 28-December 1, 2010. Proceedings (Lecture Notes in Computer Science), Kazunori Ueda (Ed.), Vol. 6461. Springer, 172-187. https://doi.org/10.1007/978-3-642-17164-2_13 Google Scholar
Cross Ref
- Jan Hofmann and Martin Hofmann. 2010b. Amortized Resource Analysis with Polynomial Potential. In Programming Languages and Systems, 19th European Symposium on Programming, ESOP 2010, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2010, Paphos, Cyprus, March 20-28, 2010. Proceedings (Lecture Notes in Computer Science), Andrew D. Gordon (Ed.), Vol. 6012. Springer, 287-306. https://doi.org/10.1007/978-3-642-11957-6_16 Google Scholar
Digital Library
- Ton Chanh Le, Timos Antonopoulos, Parisa Fathololumi, Eric Koskinen, and ThanhVu Nguyen. 2020. DynamiTe: Dynamic Termination and Non-termination Proofs. arXiv: 2010. 05747 [cs.PL]Google Scholar
- Ton Chanh Le, Cristian Gherghina, Aquinas Hobor, and Wei-Ngan Chin. 2014. A Resource-Based Logic for Termination and Non-termination Proofs. In Formal Methods and Software Engineering-16th International Conference on Formal Engineering Methods, ICFEM 2014, Luxembourg, Luxembourg, November 3-5, 2014. Proceedings (Lecture Notes in Computer Science), Stephan Merz and Jun Pang (Eds.), Vol. 8829. Springer, 267-283. https://doi.org/10.1007/978-3-319-11737-9_18 Google Scholar
Cross Ref
- Ton Chanh Le, Shengchao Qin, and Wei-Ngan Chin. 2015. Termination and non-termination specification inference. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, USA, June 15-17, 2015, David Grove and Steve Blackburn (Eds.). ACM, 489-498. https://doi.org/10.1145/2737924.2737993 Google Scholar
Digital Library
- Ton Chanh Le, Guolong Zheng, and ThanhVu Nguyen. 2019. SLING: using dynamic analysis to infer program invariants in separation logic. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, Phoenix, AZ, USA, June 22-26, 2019, Kathryn S. McKinley and Kathleen Fisher (Eds.). ACM, 788-801. https: //doi.org/10.1145/3314221.3314634 Google Scholar
Digital Library
- Chin Soon Lee, Neil D. Jones, and Amir M. Ben-Amram. 2001. The size-change principle for program termination. In Conference Record of POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, London, UK, January 17-19, 2001, Chris Hankin and Dave Schmidt (Eds.). ACM, 81-92. https://doi.org/10.1145/360204. 360210 Google Scholar
Digital Library
- George C Necula, Scott McPeak, Shree P Rahul, and Westley Weimer. 2002. CIL: Intermediate language and tools for analysis and transformation of C programs. In International Conference on Compiler Construction. Springer, 213-228.Google Scholar
Digital Library
- Phuc C. Nguyen, Thomas Gilray, Sam Tobin-Hochstadt, and David Van Horn. 2019. Size-change termination as a contract: dynamically and statically enforcing termination for higher-order programs. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, Phoenix, AZ, USA, June 22-26, 2019, Kathryn S. McKinley and Kathleen Fisher (Eds.). ACM, 845-859. https://doi.org/10.1145/3314221.3314643 Google Scholar
Digital Library
- ThanhVu Nguyen, Timos Antonopoulos, Andrew Ruef, and Michael Hicks. 2017a. Counterexample-guided approach to finding numerical invariants. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering. 605-615.Google Scholar
Digital Library
- ThanhVu Nguyen, Matthew B Dwyer, and Willem Visser. 2017b. Symlnfer: Inferring program invariants using symbolic states. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 804-814.Google Scholar
Cross Ref
- ThanhVu Nguyen, Matthew B Dwyer, and Willem Visser. 2017c. Symlnfer: Inferring program invariants using symbolic states. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 804-814.Google Scholar
Cross Ref
- ThanhVu Nguyen, Deepak Kapur, Westley Weimer, and Stephanie Forrest. 2012. Using dynamic analysis to discover polynomial and array invariants. In 2012 34th International Conference on Software Engineering (ICSE). IEEE, 683-693.Google Scholar
Cross Ref
- ThanhVu Nguyen, Deepak Kapur, Westley Weimer, and Stephanie Forrest. 2014a. DIG: A Dynamic Invariant Generator for Polynomial and Array Invariants. ACM Transactions on Software Engineering and Methodology, to appear ( 2014 ).Google Scholar
- ThanhVu Nguyen, Deepak Kapur, Westley Weimer, and Stephanie Forrest. 2014b. Using dynamic analysis to generate disjunctive invariants. In Proceedings of the 36th International Conference on Software Engineering. 608-619.Google Scholar
Digital Library
- Aditya V Nori and Rahul Sharma. 2013. Termination proofs from tests. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering. 246-256.Google Scholar
Digital Library
- Peter W. O'Hearn. 2020. Incorrectness logic. Proc. ACM Program. Lang. 4, POPL ( 2020 ), 10 : 1-10 : 32. https://doi.org/10.1145/ 3371078 Google Scholar
Digital Library
- Saswat Padhi, Rahul Sharma, and Todd Millstein. 2016. Data-driven precondition inference with learned features. ACM SIGPLAN Notices 51, 6 ( 2016 ), 42-56.Google Scholar
- Andreas Podelski and Andrey Rybalchenko. 2004a. A Complete Method for the Synthesis of Linear Ranking Functions. In Verification, Model Checking, and Abstract Interpretation, 5th International Conference, VMCAI 2004, Venice, Italy, January 11-13, 2004, Proceedings (Lecture Notes in Computer Science), Bernhard Stefen and Giorgio Levi (Eds.), Vol. 2937. Springer, 239-251. https://doi.org/10.1007/978-3-540-24622-0_20 Google Scholar
Cross Ref
- Andreas Podelski and Andrey Rybalchenko. 2004b. Transition Invariants. In 19th IEEE Symposium on Logic in Computer Science (LICS 2004 ), 14-17 July 2004, Turku, Finland, Proceedings. IEEE Computer Society, 32-41. https://doi.org/10.1109/ LICS. 2004.1319598 Google Scholar
Cross Ref
- Enric Rodríguez-Carbonell and Deepak Kapur. 2007a. Automatic generation of polynomial invariants of bounded degree using abstract interpretation. Science of Computer Programming 64, 1 ( 2007 ), 54-75.Google Scholar
- Enric Rodríguez-Carbonell and Deepak Kapur. 2007b. Generating all polynomial invariants in simple loops. Journal of Symbolic Computation 42, 4 ( 2007 ), 443-476.Google Scholar
Digital Library
- Rahul Sharma, Saurabh Gupta, Bharath Hariharan, Alex Aiken, Percy Liang, and Aditya V Nori. 2013. A data driven approach for algebraic loop invariants. In European Symposium on Programming. Springer, 574-592.Google Scholar
Digital Library
- Stephen F. Siegel, Manchun Zheng, Ziqing Luo, Timothy K. Zirkel, Andre V. Marianiello, John G. Edenhofner, Matthew B. Dwyer, and Michael S. Rogers. 2015. CIVL: the concurrency intermediate verification language. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2015, Austin, TX, USA, November 15-20, 2015, Jackie Kern and Jefrey S. Vetter (Eds.). ACM, 61 : 1-61 : 12. https://doi.org/10.1145/2807591.2807635 Google Scholar
Digital Library
- SV-COMP benchmark nla-digbench. 2020. SV-COMP benchmark nla-digbench. https://github.com/sosy-lab/svbenchmarks/tree/master/c/nla-digbench.Google Scholar
- Ultimate. 2020. Ultimate Automizer. https://monteverdi.informatik.uni-freiburg.de/tomcat/Website/?ui=tool&tool=ltl_automizer.Google Scholar
- Caterina Urban. 2013. Piecewise-Defined Ranking Functions. In 13th International Workshop on Termination (WST 2013 ). 69.Google Scholar
- Caterina Urban. 2015. FuncTion: an abstract domain functor for termination. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 464-466.Google Scholar
Digital Library
- Caterina Urban and Antoine Miné. 2014. An abstract domain to infer ordinal-valued ranking functions. In European Symposium on Programming Languages and Systems. Springer, 412-431.Google Scholar
Digital Library
- Peng Wang, Di Wang, and Adam Chlipala. 2017. TiML: a functional language for practical complexity analysis with invariants. Proceedings of the ACM on Programming Languages 1, OOPSLA ( 2017 ), 1-26.Google Scholar
Digital Library
- Jianan Yao, Gabriel Ryan, Justin Wong, Suman Jana, and Ronghui Gu. 2020. Learning nonlinear loop invariants with gated continuous logic networks. In Proceedings of the 41st ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2020, London, UK, June 15-20, 2020, Alastair F. Donaldson and Emina Torlak (Eds.). ACM, 106-120. https://doi.org/10.1145/3385412.3385986 Google Scholar
Digital Library
Index Terms
DynamiTe: dynamic termination and non-termination proofs
Recommendations
Abstract Relations Between Restricted Termination And Confluence Properties Of Rewrite Systems
We investigate restricted termination and confluence properties of term rewriting systems, in particular weak termination, weak innermost termination, (strong) innermost termination, (strong) termination, and their interrelations. New criteria are ...
Proving termination of context-sensitive rewriting by transformation
Context-sensitive rewriting (CSR) is a restriction of rewriting that forbids reductions on selected arguments of functions. With CSR, we can achieve a terminating behavior with non-terminating term rewriting systems, by pruning (all) infinite rewrite ...
Using Context-Sensitive Rewriting for Proving Innermost Termination of Rewriting
Computational systems based on reducing expressions usually have a predefined reduction strategy to break down the nondeterminism which is inherent to reduction relations. The innermost strategy corresponds to call by value or eager computation, that is,...






Comments