Modelirovanie i Analiz Informatsionnykh Sistem
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive
Impact factor

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Model. Anal. Inform. Sist.:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Modelirovanie i Analiz Informatsionnykh Sistem, 2018, Volume 25, Number 5, Pages 534–548
DOI: https://doi.org/10.18255/1818-1015-534-548
(Mi mais647)
 

Program Synthesis and Transformations

Polyprograms and polyprogram bisimulation

S. A. Grechanik

Keldysh Institute of Applied Mathematics, 4 Miusskaya sq., Moscow 125047, Russia
References:
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.
Funding agency Grant number
Russian Foundation for Basic Research 18-31-00412_мол_а
This work was supported by Russian Foundation for Basic Research, grant No. 18-31-00412.
Received: 10.09.2018
Document Type: Article
UDC: 519.681.3
Language: English
Citation: S. A. Grechanik, “Polyprograms and polyprogram bisimulation”, Model. Anal. Inform. Sist., 25:5 (2018), 534–548
Citation in format AMSBIB
\Bibitem{Gre18}
\by S.~A.~Grechanik
\paper Polyprograms and polyprogram bisimulation
\jour Model. Anal. Inform. Sist.
\yr 2018
\vol 25
\issue 5
\pages 534--548
\mathnet{http://mi.mathnet.ru/mais647}
\crossref{https://doi.org/10.18255/1818-1015-534-548}
Linking options:
  • https://www.mathnet.ru/eng/mais647
  • https://www.mathnet.ru/eng/mais/v25/i5/p534
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Моделирование и анализ информационных систем
    Statistics & downloads:
    Abstract page:151
    Full-text PDF :76
    References:28
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024