TY - GEN
T1 - General Techniques for Automatic Program Optimization and Synthesis Through Theorem Proving
AU - Madden,P.
AU - Bundy,Alan
PY - 1993
Y1 - 1993
N2 - The use of proof plans -formal patterns of reasoning for theorem proving -to control the {automatic) synthesis of efficient programs from standard definitional equations is described. A general framework for synthesizing efficient programs, using tools such as higher-order unification, has been
developed and holds promise for encapsulating an otherwise diverse, and
often ad hoc, range of transformation techniques. A prototype system has
been implemented. Proof plans are used to control the (automatic) synthesis
of functional pro-grams, specified in a standard equational form, t', by using
the proofs as programs principle. The goal is that the program extracted from a
constructive proof of the specification is an optimization of that defined solely
by £. Thus the theorem proving process is a form of program optimization allowing for the construction of an efficient, target, program from the
definition of an inefficient, source, program.The general technique for
controlling the syntheses of efficient programs involves using t' to specify the
target program and then introducing a new sub-goal into the proof of that
specification.
Different optimizations are achieved by placing differ-ent characterizing
restrictions on the form of this new sub-goal and hence on the subsequent
proof. Meta-variables and higher-order unification are used in a technique
called middle-out reasoning to circumvent eureka steps concerning, amongst
other things, the identification of recursive data-types, and unknown constraint
functions. Such problems typically require user intervention.
AB - The use of proof plans -formal patterns of reasoning for theorem proving -to control the {automatic) synthesis of efficient programs from standard definitional equations is described. A general framework for synthesizing efficient programs, using tools such as higher-order unification, has been
developed and holds promise for encapsulating an otherwise diverse, and
often ad hoc, range of transformation techniques. A prototype system has
been implemented. Proof plans are used to control the (automatic) synthesis
of functional pro-grams, specified in a standard equational form, t', by using
the proofs as programs principle. The goal is that the program extracted from a
constructive proof of the specification is an optimization of that defined solely
by £. Thus the theorem proving process is a form of program optimization allowing for the construction of an efficient, target, program from the
definition of an inefficient, source, program.The general technique for
controlling the syntheses of efficient programs involves using t' to specify the
target program and then introducing a new sub-goal into the proof of that
specification.
Different optimizations are achieved by placing differ-ent characterizing
restrictions on the form of this new sub-goal and hence on the subsequent
proof. Meta-variables and higher-order unification are used in a technique
called middle-out reasoning to circumvent eureka steps concerning, amongst
other things, the identification of recursive data-types, and unknown constraint
functions. Such problems typically require user intervention.
M3 - Conference contribution
BT - EAST-WEST AI CONFERENCE: from theory to practice - EWAIC'93
ER -