Molinari, Giacomo
(2018)

*Towards an Implementation in Lambda-Prolog of Maietti's two-level minimalist foundation.*
[Laurea], Università di Bologna, Corso di Studio in

Informatica [L-DM270], Documento full-text non disponibile

Il full-text non è disponibile per scelta dell'autore.
(

Contatta l'autore)

## Abstract

The idea of a theory able to conjugate the advantages of both the extensional and intensional views of mathematics was presented in an article by Maria Emilia Maietti in 2006. In order to combine these two different views the theory is developed over two levels: an extensional level interpreted over an intensional one by means of quotients.
The first attempt to fully formalize this theory in a programming language is the subject of Alberto Fiori's master thesis. After giving a brief introduction to Maietti's theory in the first two chapters, I proceed to examine Fiori's implementation in Lambda-Prolog, focusing on its main downside: in the translation from extensional types to their intensional interpretation, the size of the translated types grows exponentially. Such an explosive growth renders Fiori's approach computationally unviable.
In order to deal with this issue we had to devise a different approach, an implementation (written in the same language) which effectively builds the setoid model in the intensional theory and then uses this new level of abstraction to implement the extensional theory. In practice, this means building a library of abstractions where the definitions of setoid and dependent setoid are given once and for all.
This required us to write our own abstraction mechanisms for abstracting over types, terms and conversion rules, since Maietti's theory does not provide a definitional level. The new abstraction mechanisms presented in this thesis represent therefore an original contribution to Maietti's work.
Finally, I show that while the size of translations is smaller in this implementation, its growth remains exponential.
Thanks to the setoid approach, however, the reasons behind the explosive size growth have finally become more clear: this makes them easier to analyse and, hopefully, will allow future implementations to overcome this issue.

Abstract

The idea of a theory able to conjugate the advantages of both the extensional and intensional views of mathematics was presented in an article by Maria Emilia Maietti in 2006. In order to combine these two different views the theory is developed over two levels: an extensional level interpreted over an intensional one by means of quotients.
The first attempt to fully formalize this theory in a programming language is the subject of Alberto Fiori's master thesis. After giving a brief introduction to Maietti's theory in the first two chapters, I proceed to examine Fiori's implementation in Lambda-Prolog, focusing on its main downside: in the translation from extensional types to their intensional interpretation, the size of the translated types grows exponentially. Such an explosive growth renders Fiori's approach computationally unviable.
In order to deal with this issue we had to devise a different approach, an implementation (written in the same language) which effectively builds the setoid model in the intensional theory and then uses this new level of abstraction to implement the extensional theory. In practice, this means building a library of abstractions where the definitions of setoid and dependent setoid are given once and for all.
This required us to write our own abstraction mechanisms for abstracting over types, terms and conversion rules, since Maietti's theory does not provide a definitional level. The new abstraction mechanisms presented in this thesis represent therefore an original contribution to Maietti's work.
Finally, I show that while the size of translations is smaller in this implementation, its growth remains exponential.
Thanks to the setoid approach, however, the reasons behind the explosive size growth have finally become more clear: this makes them easier to analyse and, hopefully, will allow future implementations to overcome this issue.

Tipologia del documento

Tesi di laurea
(Laurea)

Autore della tesi

Molinari, Giacomo

Relatore della tesi

Scuola

Corso di studio

Ordinamento Cds

DM270

Parole chiave

Type theory,logic,logic programming,constructive mathematics,proofs as programs correspondence

Data di discussione della Tesi

17 Ottobre 2018

URI

## Altri metadati

Tipologia del documento

Tesi di laurea
(NON SPECIFICATO)

Autore della tesi

Molinari, Giacomo

Relatore della tesi

Scuola

Corso di studio

Ordinamento Cds

DM270

Parole chiave

Type theory,logic,logic programming,constructive mathematics,proofs as programs correspondence

Data di discussione della Tesi

17 Ottobre 2018

URI

Gestione del documento: