Formal Metatheory of Programming Languages in the Matita Interactive Theorem Prover
@article{Asperti2012FormalMO, title={Formal Metatheory of Programming Languages in the Matita Interactive Theorem Prover}, author={Andrea Asperti and Wilmer Ricciotti and Claudio Sacerdoti Coen and Enrico Tassi}, journal={Journal of Automated Reasoning}, year={2012}, volume={49}, pages={427-451} }
This paper is a report about the use of Matita, an interactive theorem prover under development at the University of Bologna, for the solution of the POPLmark Challenge, part 1a. We provide three different formalizations, including two direct solutions using pure de Bruijn and locally nameless encodings of bound variables, and a formalization using named variables, obtained by means of a sound translation to the locally nameless encoding. According to this experience, we also discuss some of…
6 Citations
Formalizing Turing Machines
- Computer ScienceWoLLIC
- 2012
We discuss the formalization, in the Matita Theorem Prover, of a few, basic results on Turing Machines, up to the existence of a (certified) Universal Machine. The work is meant to be a preliminary…
Binding Structures as an Abstract Data Type
- Computer ScienceESOP
- 2015
This work proposes to represent binding structures by means of an abstract data type, equipped with high level operations allowing to manipulate terms with binding with a degree of abstraction comparable to that of informal proofs, and proves that the abstract representation is sound by providing a de Bruijn model.
A Bi-Directional Refinement Algorithm for the Calculus of (Co)Inductive Constructions
- Computer ScienceLog. Methods Comput. Sci.
- 2012
Bi-directional rules for CIC are proposed that have better error message reporting and better inference of dependent types, and the coercion system for sub-typing is more eective and type inference generates simpler unication problems that are more likely to be solved by the inherently incomplete higher order unication algorithms implemented.
The Speedup Theorem in a Primitive Recursive Framework
- Mathematics, Computer ScienceCPP
- 2015
This article discusses an alternative, formal proof of the speedup theorem that allows us to spare the invocation of the fix point theorem and sheds more light on the actual complexity of the function fr.
AN ANALYSIS OF THE CONSTRUCTIVE CONTENT OF HENKIN’S PROOF OF GÖDEL’S COMPLETENESS THEOREM
- Computer Science, Philosophy
- 2016
This work applies the Curry-Howard correspondence approach to Henkin’s proof to phrase it as a program which transforms any proof of validity with respect to Tarski semantics into a proof of derivability.
Computational Complexity Via Finite Types
- Computer ScienceACM Trans. Comput. Log.
- 2015
This work addresses computational complexity writing polymorphic functions between finite types by expressing costs in terms of the cardinality of these types, finding the known result that the different levels in the hierarchy of higher-order primitive recursive functions precisely capture basic complexity classes.
References
SHOWING 1-10 OF 20 REFERENCES
Mechanized Metatheory for the Masses: The PoplMark Challenge
- Computer ScienceTPHOLs
- 2005
An initial set of benchmarks for measuring progress in this area of programming languages are proposed, based on the metatheory of System F<:, a typed lambda-calculus with second-order polymorphism, subtyping, and records.
Crafting a Proof Assistant
- Computer ScienceTYPES
- 2006
This work analyzes Matita: a new interactive theorem prover based--as Coq--on the Calculus of Inductive Constructions (CIC), focusing on the dependencies of its components, how they implement the main functionalities, and their degree of reusability.
A compact kernel for the calculus of inductive constructions
- Computer Science
- 2009
The paper describes the new kernel for the Calculus of Inductive Constructions (CIC) implemented inside the Matita Interactive Theorem Prover, resulting in a remarkably compact implementation of about 2300 lines of OCaml code.
A new approach to abstract syntax involving binders
- Computer ScienceProceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158)
- 1999
It is shown that in FM-set theory one can express statements quantifying over 'fresh' names and this is used to give a novel set-theoretic interpretation of name abstraction.
Strong Induction Principles in the Locally Nameless Representation of Binders ( Preliminary Notes )
- Computer Science
- 2007
These notes demonstrate with two examples that it is often difficult to derive a strong induction principle for just the weak version and then use the infrastructure provided by the nominal Isabelle package to derive automatically and in a uniform way a stronguction principle for this weak version.
Elimination with a Motive
- Computer ScienceTYPES
- 2000
This paper describes a generic tactic, Elim, which supports this ubiquitous idiom in interactive proof and subsumes the functionality of the more specific 'induction' and 'inversion' tactics found in systems like Coq and Lego.
User Interaction with the Matita Proof Assistant
- Computer ScienceJournal of Automated Reasoning
- 2007
This paper focuses on some of the distinctive features of the user interaction with Matita, characterized mostly by the organization of the library as a searchable knowledge base, the emphasis on a high-quality notational rendering, and the complex interplay between syntax, presentation, and semantics.
The Coq proof assistant : reference manual, version 6.1
- Biology
- 1997
Coq is a proof assistant based on a higher-order logic allowing powerful definitions of functions. Coq V6.1 is available by anonymous ftp at ftp.inria.fr:/INRIA/Projects/coq/V6.1 and…
Nominal Logic: A First Order Theory of Names and Binding
- Computer ScienceTACS
- 2001
Nominal Logic is introduced, a version of first-order many-sorted logic with equality containing primitives for renaming via name-swapping and for freshness of names, from which a notion of binding can be derived.