Partial Inversion of Constructor Term Rewriting Systems

Partial-inversion compilers generate programs which compute some unknown inputs of given programs from a given output and the rest of inputs whose values are already given. In this paper, we propose a partial-inversion compiler of constructor term rewriting systems. The compiler automatically generates a conditional term rewriting system, and then unravels it to an unconditional system. To improve the efficiency of inverse computation, we show that innermost strategy is usable to obtain all solutions if the generated system is right-linear.

[1]  Alexander Romanenko,et al.  Inversion and metacomputation , 1991, PEPM '91.

[2]  Jürgen Giesl,et al.  Automated Termination Proofs with AProVE , 2004, RTA.

[3]  Enno Ohlebusch,et al.  Termination of Logic Programs: Transformational Methods Revisited , 2001, Applicable Algebra in Engineering, Communication and Computing.

[4]  Masahiko Sakai,et al.  Generation of Inverse Term Rewriting Systems for Pure Treeless Functions , 2001 .

[5]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[6]  Masahiko Sakai,et al.  Narrowing-based simulation of term rewriting systems with extra variables , 2003, WFLP.

[7]  Francisco Durán,et al.  Proving termination of membership equational programs , 2004, PEPM '04.

[8]  Enno Ohlebusch,et al.  Advanced Topics in Term Rewriting , 2002, Springer New York.

[9]  Mario Rodríguez-Artalejo,et al.  Functional and Constraint Logic Programming , 2001, CCL.

[10]  Yoshihito Toyama,et al.  Confluent Term Rewriting Systems with Membership Conditions , 1988, CTRS.

[11]  Shin-Cheng Mu,et al.  A programmable editor for developing structured documents based on bidirectional transformations , 2004, PEPM '04.

[12]  Nishida Naoki,et al.  On Simulation-Completeness of Unraveling for Conditional Term Rewriting Systems , 2004 .

[13]  Salvador Lucas,et al.  Context-sensitive Computations in Functional and Functional Logic Programs , 1998, J. Funct. Log. Program..

[14]  Nao Hirokawa,et al.  Tsukuba Termination Tool , 2003, RTA.

[15]  Peter Thiemann Proceedings of the 2002 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '02), Portland, Oregon, USA, January 14-15, 2002 , 2002, PEPM.

[16]  Jean-Marie Hullot,et al.  Canonical Forms and Unification , 1980, CADE.

[17]  Pierre Lescanne,et al.  Algebraic and Logic Programming , 1988, Lecture Notes in Computer Science.

[18]  Robert Glück,et al.  A Program Inverter for a Functional Language with Equality and Constructors , 2003, APLAS.

[19]  Simon Kaplan,et al.  Conditional Term Rewriting Systems , 1987, Lecture Notes in Computer Science.

[20]  Salvador Lucas,et al.  mu-term: A Tool for Proving Termination of Context-Sensitive Rewriting , 2004, RTA.

[21]  Michael Leuschel Proceedings of the 2003 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, 2003, San Diego, California, USA, June 7, 2003 , 2003, PEPM.

[22]  Michael Leuschel,et al.  Efficient and flexible access control via logic program specialisation , 2004, PEPM '04.

[23]  Salvador Lucas,et al.  Termination of Context-Sensitive Rewriting by Rewriting , 1996, ICALP.

[24]  Jürgen Giesl Automated Termination Proofs with Measure Functions , 1995, KI.

[25]  Morten Heine Sørensen,et al.  From checking to inference via driving and dag grammars , 2002, PEPM '02.

[26]  Hessam Khoshnevisan,et al.  InvX: An Automatic Function Inverter , 1989, RTA.

[27]  Massimo Marchiori,et al.  Unravelings and Ultra-properties , 1996, ALP.

[28]  Robert Glück,et al.  The Universal Resolving Algorithm: Inverse Computation in a Functional Language , 2000, MPC.

[29]  Masahiko Sakai,et al.  Innermost Reductions Find All Normal Forms on Right-Linear Terminating Overlay TRSs , 2003 .

[30]  Leon Sterling,et al.  Meta-Level Inference and Program Verification , 1982, CADE.