Ricciotti, Wilmer
(2011)
Theoretical and implementation aspects in the mechanization of the metatheory of programming languages, [Dissertation thesis], Alma Mater Studiorum Università di Bologna.
Dottorato di ricerca in
Informatica, 23 Ciclo. DOI 10.6092/unibo/amsdottorato/3754.
Documenti full-text disponibili:
Abstract
Interactive theorem provers are tools designed for the certification of formal proofs developed by means of man-machine collaboration. Formal proofs obtained in this way cover a large variety of logical theories, ranging from the branches of mainstream mathematics, to the field of software verification. The border between these two worlds is marked by results in theoretical computer science and proofs related to the metatheory of programming languages. This last field, which is an obvious application of interactive theorem proving, poses nonetheless a serious challenge to the users of such tools, due both to the particularly structured way in which these proofs are
constructed, and to difficulties related to the management of notions typical of programming languages like variable binding.
This thesis is composed of two parts, discussing our experience in the development of the Matita interactive theorem prover and its use in the mechanization of the metatheory of programming languages. More specifically, part I covers:
- the results of our effort in providing a better framework for the development of tactics for Matita, in order to make their implementation and debugging easier, also resulting in a much clearer code;
- a discussion of the implementation of two tactics, providing infrastructure for the unification of constructor forms and the inversion of inductive predicates; we point out interactions between induction and inversion and provide an advancement over the state of the art.
In the second part of the thesis, we focus on aspects related to the formalization of programming languages. We describe two works of ours:
- a discussion of basic issues we encountered in our formalizations of part 1A of the Poplmark challenge, where we apply the extended inversion principles we implemented for Matita;
- a formalization of an algebraic logical framework, posing more complex challenges, including multiple binding and a form of hereditary substitution; this work adopts, for the encoding of binding, an extension of Masahiko Sato's canonical locally named representation we designed during our visit to the Laboratory for Foundations of Computer Science at the University of Edinburgh, under the supervision of Randy Pollack.
Abstract
Interactive theorem provers are tools designed for the certification of formal proofs developed by means of man-machine collaboration. Formal proofs obtained in this way cover a large variety of logical theories, ranging from the branches of mainstream mathematics, to the field of software verification. The border between these two worlds is marked by results in theoretical computer science and proofs related to the metatheory of programming languages. This last field, which is an obvious application of interactive theorem proving, poses nonetheless a serious challenge to the users of such tools, due both to the particularly structured way in which these proofs are
constructed, and to difficulties related to the management of notions typical of programming languages like variable binding.
This thesis is composed of two parts, discussing our experience in the development of the Matita interactive theorem prover and its use in the mechanization of the metatheory of programming languages. More specifically, part I covers:
- the results of our effort in providing a better framework for the development of tactics for Matita, in order to make their implementation and debugging easier, also resulting in a much clearer code;
- a discussion of the implementation of two tactics, providing infrastructure for the unification of constructor forms and the inversion of inductive predicates; we point out interactions between induction and inversion and provide an advancement over the state of the art.
In the second part of the thesis, we focus on aspects related to the formalization of programming languages. We describe two works of ours:
- a discussion of basic issues we encountered in our formalizations of part 1A of the Poplmark challenge, where we apply the extended inversion principles we implemented for Matita;
- a formalization of an algebraic logical framework, posing more complex challenges, including multiple binding and a form of hereditary substitution; this work adopts, for the encoding of binding, an extension of Masahiko Sato's canonical locally named representation we designed during our visit to the Laboratory for Foundations of Computer Science at the University of Edinburgh, under the supervision of Randy Pollack.
Tipologia del documento
Tesi di dottorato
Autore
Ricciotti, Wilmer
Supervisore
Dottorato di ricerca
Scuola di dottorato
Scienze e ingegneria dell'informazione
Ciclo
23
Coordinatore
Settore disciplinare
Settore concorsuale
Parole chiave
proof assistant interactive theorem proving mechanization of the metatheory of programming languages
URN:NBN
DOI
10.6092/unibo/amsdottorato/3754
Data di discussione
6 Maggio 2011
URI
Altri metadati
Tipologia del documento
Tesi di dottorato
Autore
Ricciotti, Wilmer
Supervisore
Dottorato di ricerca
Scuola di dottorato
Scienze e ingegneria dell'informazione
Ciclo
23
Coordinatore
Settore disciplinare
Settore concorsuale
Parole chiave
proof assistant interactive theorem proving mechanization of the metatheory of programming languages
URN:NBN
DOI
10.6092/unibo/amsdottorato/3754
Data di discussione
6 Maggio 2011
URI
Statistica sui download
Gestione del documento: