|
Program Synthesis and Transformations
Polyprograms and polyprogram bisimulation
S. A. Grechanik Keldysh Institute of Applied Mathematics,
4 Miusskaya sq., Moscow 125047, Russia
Abstract:
A polyprogram is a generalization of a program which admits multiple definitions of a single
function. Such objects arise in different transformation systems, such as the Burstall–Darlington
framework or equality saturation. In this paper, we introduce the notion of a polyprogram in a
non-strict first-order functional language.
We define denotational semantics for polyprograms and
describe some possible transformations of polyprograms, namely we present several main
transformations in two different styles: in the style of the Burstall–Darlington framework and in
the style of equality saturation. Transformations in the style of equality saturation are performed
on polyprograms in decomposed form, where the difference between functions and expressions is
blurred, and so is the difference between substitution and unfolding. Decomposed polyprograms are
well suited for implementation and reasoning, although they are not very human-readable.
We also introduce the notion of polyprogram bisimulation which enables a powerful transformation
called merging by bisimulation, corresponding to proving equivalence of functions by induction or
coinduction. Polyprogram bisimulation is a concept inspired by bisimulation of labelled transition
systems, but yet it is quite different, because polyprogram bisimulation treats every definition as
self-sufficient, that is a function is considered to be defined by any of its definitions, whereas
in an LTS the behaviour of a state is defined by all transitions from this state.
We present an algorithm for enumerating polyprogram bisimulations of a certain form. The algorithm
consists of two phases: enumerating prebisimulations and converting them to proper bisimulations.
This separation is required because polyprogram bisimulations take into account the possibility of
parameter permutation. We prove correctness of this algorithm and formulate a certain weak form of
its completeness.
The article is published in the author's wording.
Keywords:
polyprograms, program transformation, equality saturation, bisimulation.
Received: 10.09.2018
Citation:
S. A. Grechanik, “Polyprograms and polyprogram bisimulation”, Model. Anal. Inform. Sist., 25:5 (2018), 534–548
Linking options:
https://www.mathnet.ru/eng/mais647 https://www.mathnet.ru/eng/mais/v25/i5/p534
|
Statistics & downloads: |
Abstract page: | 151 | Full-text PDF : | 76 | References: | 28 |
|