Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Synthesis of functions by transformations and constraints (poster)
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Term rewriting and all that
Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity
Journal of the ACM (JACM)
InvX: An Automatic Function Inverter
RTA '89 Proceedings of the 3rd International Conference on Rewriting Techniques and Applications
Proceedings of the Third International Conference on Algebraic and Logic Programming
Unravelings and Ultra-properties
ALP '96 Proceedings of the 5th International Conference on Algebraic and Logic Programming
Specification and correctness of lambda lifting
Journal of Functional Programming
Partial inversion of constructor term rewriting systems
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Semi-inversion of guarded equations
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Completion after Program Inversion of Injective Functions
Electronic Notes in Theoretical Computer Science (ENTCS)
Proving injectivity of functions via program inversion in term rewriting
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Determinization of conditional term rewriting systems
Theoretical Computer Science
Hi-index | 0.00 |
We introduce a new partial inversion technique for first-order functional programs. Our technique is simple, fully automatic, and (when it succeeds) returns a program that belongs to the same class of the original program, namely the class of inductively sequential programs (i.e., typical functional programs). To ease the definition, our method proceeds in a stepwise manner: normalization (introduction of let expressions), proper inversion, and removal of let expressions. Furthermore, it can easily be implemented. Therefore, it forms an appropriate basis for developing a practically applicable transformation tool. Preliminary experiments with a prototype implementation of the partial inverter demonstrates the usefulness and viability of our approach.