## Program Transformation By Proof in Constructive Framework (1991)

Venue: | In Informatika '91, Theoretical Computer Science and Methods of Compilation and Program Construction |

Citations: | 1 - 0 self |

### BibTeX

@INPROCEEDINGS{Galmiche91programtransformation,

author = {D. Galmiche and Crin Inria Lorraine},

title = {Program Transformation By Proof in Constructive Framework},

booktitle = {In Informatika '91, Theoretical Computer Science and Methods of Compilation and Program Construction},

year = {1991}

}

### OpenURL

### Abstract

This paper aims at presenting the notion of program transformation by proof in type theory and programming with proofs framework. In such framework, programs obtained from proofs are not always efficient and the relationships between programs and good proofs have to be studied. Automatic synthesis and verification of programs have been tackled in the constructive type theory and we are interested by the transformational approach, with some degree of automation, in such a framework. We present some techniques of proof and program transformation using proof synthesis information. A strategy of generalization by abstraction of terms is presented, with a view to deriving by constructive proofs new program versions, and we analyze the connections with data modifications and induction choices. 1 Introduction The derivation of correct and efficient programs from formal specifications can be considered in different ways. An important one consists in using the transformation technique which is...

### Citations

694 | A framework for defining logics
- Harper, Honsell, et al.
- 1993
(Show Context)
Citation Context ... general recursion [19]. 2.2 A logical framework We give here a presentation of intuitionistic type theory in a lambda calculus framework [7] like in [8], which has an important relationship with ELF =-=[12]-=- and Automath languages [2]. This formulation shows a presentation of logical systems in typed theory. This framework can be viewed as the implementation language of the theory. We give here a classic... |

570 | A Transformation System for Developing Recursive Programs
- Burstall, Darlington
- 1976
(Show Context)
Citation Context ...fficient programs from formal specifications can be considered in different ways. An important one consists in using the transformation technique which is a method available in the case of functional =-=[4]-=- or logical programs [22] preserving semantics. The transformation methodology of program derivation is based on the idea of first writing an initial program version which corresponds to a given speci... |

530 |
A computational logic
- Boyer, Moore
- 1979
(Show Context)
Citation Context ...ries [18]. The logical structure of a proof is better understood that that of a program. Moreover, the knowledge of the structure of inductive proofs are linked to the synthesis of recursive programs =-=[1]-=-. In the constructive type theory, the language is devoted, at the same time, to the specification, the verification and the synthesis of programs. Such features mean that synthesis and transformation... |

471 |
The calculus of constructions
- Coquand, Huet
- 1988
(Show Context)
Citation Context ...structive logic, with the aim of automation. Recently, there has been a great interest in the development of programs in constructive framework and more precisely in programming with proofs framework =-=[5]-=-, [9], [15], [17]. The idea of this technique is that formal specification is given first, then a proof of it is constructed and executable code is extracted from the proof systematically with the not... |

342 |
Intuitionistic type theory
- Martin-Löf
- 1984
(Show Context)
Citation Context ... with the aim of automation. Recently, there has been a great interest in the development of programs in constructive framework and more precisely in programming with proofs framework [5], [9], [15], =-=[17]-=-. The idea of this technique is that formal specification is given first, then a proof of it is constructed and executable code is extracted from the proof systematically with the notion of realizabil... |

90 |
A survey of the project AUTOMATH
- Bruijn
- 1980
(Show Context)
Citation Context ... A logical framework We give here a presentation of intuitionistic type theory in a lambda calculus framework [7] like in [8], which has an important relationship with ELF [12] and Automath languages =-=[2]-=-. This formulation shows a presentation of logical systems in typed theory. This framework can be viewed as the implementation language of the theory. We give here a classical presentation of the theo... |

43 |
A synthesis of several sorting algorithms
- Darlington
- 1978
(Show Context)
Citation Context ...istics (like second order quantification) [10]. 3.3 Proof and program derivation A good example of program synthesis is the derivation of the well known sorting algorithms from a common specification =-=[6]-=-. We can see how algorithmic features can be reflected in proof strategy to derive proof of formal specification. At first, we present a general formulation of sorting in a mathematical notation and t... |

30 | Terminating general recursion
- Nordström
- 1988
(Show Context)
Citation Context ...lution in type theory because of a lack of information. A way to treat such situations in type theory, with propositions and subsets, is an extension of the theory, for example with general recursion =-=[19]-=-. 2.2 A logical framework We give here a presentation of intuitionistic type theory in a lambda calculus framework [7] like in [8], which has an important relationship with ELF [12] and Automath langu... |

28 |
Programming with proofs: A second order type theory
- Parigot
- 1988
(Show Context)
Citation Context ...a : ff and b : fi. 7) c = x:cx : [x : ff]fi if x : ff and c : [x : ff]fi. We can include a notion of polymorphism (which plays the role of second order quantification appearing in other theories [5], =-=[20]-=-) and we give polymorphic rules for objects and types. The rule of p-type formation is: 8) If \Gamma ` ff : U; \Gamma; x : ff ` fi : U then \Pi[x : ff]fi : U . The rules of p-object formation are: 9) ... |

21 |
Transformational logic program synthesis
- Sato, Tamaki
- 1984
(Show Context)
Citation Context ...ormal specifications can be considered in different ways. An important one consists in using the transformation technique which is a method available in the case of functional [4] or logical programs =-=[22]-=- preserving semantics. The transformation methodology of program derivation is based on the idea of first writing an initial program version which corresponds to a given specification and then to deri... |

14 |
Proof Transformations for Equational Theories
- Nipkow
- 1990
(Show Context)
Citation Context ...A proof contains more information than the program which it specifies; it contains the thinking behind the program design. This aspect of proof transformation has been studied for equational theories =-=[18]-=-. The logical structure of a proof is better understood that that of a program. Moreover, the knowledge of the structure of inductive proofs are linked to the synthesis of recursive programs [1]. In t... |

7 |
Normalizing the associative law: An experiment with Martin-Lof's type theory
- Hedberg
- 1991
(Show Context)
Citation Context ...nction snoc. It is clear that it is dependant from the examples but it can be interesting to analyze this point by studying, for example, some work about the associative law in Martin-Lof type theory =-=[13]-=-. We precise now some reflexions around the associative law in type theory [13]. The associative law is a basic axiom of the semigroup and a multiplicative expression is intended to denote an element ... |

6 |
Inductively defined sets in Martin-Lof's type theory
- Dybjer
- 1987
(Show Context)
Citation Context ...s and subsets, is an extension of the theory, for example with general recursion [19]. 2.2 A logical framework We give here a presentation of intuitionistic type theory in a lambda calculus framework =-=[7]-=- like in [8], which has an important relationship with ELF [12] and Automath languages [2]. This formulation shows a presentation of logical systems in typed theory. This framework can be viewed as th... |

6 |
Program development in the constructive set theory TK
- Henson
- 1989
(Show Context)
Citation Context ...logic, with the aim of automation. Recently, there has been a great interest in the development of programs in constructive framework and more precisely in programming with proofs framework [5], [9], =-=[15]-=-, [17]. The idea of this technique is that formal specification is given first, then a proof of it is constructed and executable code is extracted from the proof systematically with the notion of real... |

5 |
Constructive system for automatic program synthesis
- Galmiche
- 1990
(Show Context)
Citation Context ...tive logic, with the aim of automation. Recently, there has been a great interest in the development of programs in constructive framework and more precisely in programming with proofs framework [5], =-=[9]-=-, [15], [17]. The idea of this technique is that formal specification is given first, then a proof of it is constructed and executable code is extracted from the proof systematically with the notion o... |

4 |
Automatic guidance of program synthesis proofs
- Bundy
- 1989
(Show Context)
Citation Context ...s which includes rules of inference for mathematical induction. The development of proofs can be automated through tactics which split the formula into subformulae, by application of refinement rules =-=[3]-=-, [9]. Remark 2.1 We have to mention that there are some problems considering programs as proofs. A first one is the difficulty consisting in formalization, programs to be executed having to be formal... |

4 |
The lambda abstraction strategy for program derivation
- Pettorossi, Skowron
- 1989
(Show Context)
Citation Context ...icient. For example, in the logical case, the transformations are semantics preserving rules like definition rule, folding and unfolding rules and their applications need to be directed by strategies =-=[21]-=-. These ones allow for some program classes to derive more efficient programs, and application is realized in this way via the introduction of new predicates. In this paper, we investigate some ways o... |

3 |
The power of constructive framework for program synthesis
- Galmiche
- 1988
(Show Context)
Citation Context ...s, is an extension of the theory, for example with general recursion [19]. 2.2 A logical framework We give here a presentation of intuitionistic type theory in a lambda calculus framework [7] like in =-=[8]-=-, which has an important relationship with ELF [12] and Automath languages [2]. This formulation shows a presentation of logical systems in typed theory. This framework can be viewed as the implementa... |

3 |
Generalization from partial parametrization in higher order type theory
- Hagiya
(Show Context)
Citation Context ...on of transformation. Moreover, some connections with work on the associative law seem interesting to deepen. It appears also important to study other program generalization techniques in type theory =-=[11]-=- and their applications for 16 proof and program development. Acknowledgements I should like to thank Bengt Nordstrom that indicates me some similarities with the work on associative law developed in ... |

3 | The specialization and transformation of constructive existence proofs
- Madden
- 1989
(Show Context)
Citation Context ...ourse of values definition and obtain the function g(0) = mkt(1; 1) and g(n) = mkt(x+ y; z) where mkt(x; z) = g(n). Finally, there is no use of original program and we obtain a more efficient program =-=[16]-=-. Remark 4.1 The process of providing new functions with their definitions is known as eureka step. It consists in generating new functions that can be folded with current equations to introduce some ... |

2 |
Automated proof and program development
- Galmiche, Hermann
- 1992
(Show Context)
Citation Context ...ies are general and appears also in other logical frameworks (like second order type theory) but others are directly depending on the theory and its characteristics (like second order quantification) =-=[10]-=-. 3.3 Proof and program derivation A good example of program synthesis is the derivation of the well known sorting algorithms from a common specification [6]. We can see how algorithmic features can b... |

2 |
Higher order transformations and type simulations
- Henson
- 1988
(Show Context)
Citation Context ...riant (we should find a program for which the property always holds). We will see that is beneficial to consider this definition or invariant as specification that is rather hard to find (eurekastep) =-=[14]-=-. The proof transformation methodology has been introduced and applied for functional languages [4] but it can also be applied in the case of logic programs [22]. One basic idea of that methodology is... |