10 research outputs found
First steps towards a formalization of forcing
We lay the ground for an Isabelle/ZF formalization of Cohen's technique of forcing. We formalize the definition of forcing notions as preorders with top, dense subsets, and generic filters. We formalize a version of the principle of Dependent Choices and using it we prove the Rasiowa-Sikorski lemma on the existence of generic filters. Given a transitive set M, we define its generic extension M[G], the canonical names for elements of M, and finally show that if M satisfies the axiom of pairing, then M[G] also does. We also prove that M[G] is transitive.Fil: Gunther, Emmanuel. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía y Física. Sección Ciencias de la Computación; Argentina. Consejo Nacional de Investigaciones Científicas y Técnicas; ArgentinaFil: Pagano, Miguel Maria. Consejo Nacional de Investigaciones Científicas y Técnicas; Argentina. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomía y Física. Sección Ciencias de la Computación; ArgentinaFil: Sanchez Terraf, Pedro Octavio. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Córdoba. Centro de Investigación y Estudios de Matemática. Universidad Nacional de Córdoba. Centro de Investigación y Estudios de Matemática; Argentina. Universidad Nacional de Córdoba. Facultad de Matemática, Astronomia y Física. Sección Matemática; Argentin
Witnessing (co)datatypes
Datatypes and codatatypes are useful for specifying and reasoning about (possibly infinite) computational processes. The Isabelle/HOL proof assistant has recently been extended with a definitional package that supports both. We describe a complete procedure for deriving nonemptiness witnesses in the general mutually recursive, nested case—nonemptiness being a proviso for introducing types in higher-order logic
Witnessing (co)datatypes
Datatypes and codatatypes are useful for specifying and reasoning about (possibly infinite) computational processes. The Isabelle/HOL proof assistant has recently been extended with a definitional package that supports both. We describe a complete procedure for deriving nonemptiness witnesses in the general mutually recursive, nested case—nonemptiness being a proviso for introducing types in higher-order logic
A fixedpoint approach to (co)inductive and (co)datatype definitions
This paper presents a fixedpoint approach to inductive definitions. Instead of using a syntactic test such as “strictly positive, ” the approach lets definitions involve any operators that have been proved monotone. It is conceptually simple, which has allowed the easy implementation of mutual recursion and iterated definitions. It also handles coinductive definitions: simply replace the least fixedpoint by a greatest fixedpoint. The method has been implemented in two of Isabelle’s logics, zf set theory and higher-order logic. It should be applicable to any logic in which the Knaster-Tarski theorem can be proved. Examples include lists of n elements, the accessible part of a relation and the set of primitive recursive functions. One example of a coinductive definition is bisimulations for lazy lists. Recursive datatypes are examined in detail, as well as one example of a codatatype: lazy lists. The Isabelle package has been applied in several large case studies, including two proofs of the Church-Rosser theorem and a coinductive proof of semantic consistency. The package can be trusted because it proves theorems from definitions, instead of asserting desired properties as axioms. Copyright c ○ 2008 by Lawrence C. Paulso
Computer-Aided Reasoning about Knowledge and Justifications
In the first Chapter we compare two well-known type-based computer frameworks for computer aided logical reasoning and verification: MetaPRL and Coq. In particular, we implement in MetaPRL the Calculus of Inductive Constructions which is the theoretical base for Coq. This work has shown the common points of MetaPRL and Coq, and revealed their principal methodological differences. A possible application of this work is a possibility to perform re-validation in MetaPRL of the existing library of Coq proofs which could help to build more trust in the latter.
Chapter 2 is the main contribution of the dissertation. It contains the description and testing results of an implementation of realization algorithm in epistemic modal logic that converts cut-free derivations in multi-agent epistemic modal logic into derivations in the corresponding Justification Logic where witnesses of knowledge (justification terms) are recovered for all instances of common knowledge. We also apply this algorithms to several well-known epistemic puzzles, such as Muddy Children, Wise Men, Wise Girls, etc
Program extraction from coinductive proofs and its application to exact real arithmetic
Program extraction has been initiated in the field of constructive
mathematics, and it attracts interest not only from mathematicians but
also from computer scientists nowadays. From a mathematical viewpoint
its aim is to figure out computational meaning of proofs, while from a
computer-scientific viewpoint its aim is the study of a method to
obtain correct programs. Therefore, it is natural to have both
theoretical results and a practical computer system to develop
executable programs via program extraction.
In this Thesis we study the computational interpretation of
constructive proofs involving inductive and coinductive reasoning. We
interpret proofs by translating the computational content of proofs
into executable program code. This translation is the procedure we
call program extraction and it is given through Kreisel's modified
realizability. Here we study a proof-theoretic foundation for program
extraction, enriching the proof assistant system Minlog based on this
theoretical improvement. Once a proof of a formula is written in
Minlog, a program can be extracted from the proof by the system
itself, and the extracted program can be executed in Minlog.
Moreover, extracted programs are provably correct with respect to the
proven formula due to a soundness theorem which we prove. We practice
program extraction by elaborating some case studies from exact real
arithmetic within our formal theory. Although these case studies have
been studied elsewhere, here we offer a formalization of them in
Minlog, and also machine-extraction of the corresponding programs.Die Methode der Programmextraktion hat ihren Ursprung im Bereich der
konstruktiven Mathematik, und stößt in letzter Zeit auf viel
Interesse nicht nur bei Mathematikern sondern auch bei Informatikern.
Vom Standpunkt der Mathematik ist ihr Ziel, aus Beweisen ihre
rechnerische Bedeutung abzulesen, während vom Standpunkt der
Informatik ihr Ziel die Untersuchung einer Methode ist, beweisbar
korrekte Programme zu erhalten. Es ist deshalb naheliegend, neben
theoretischen Ergebnissen auch ein praktisches Computersystem zur
Verfügung zu haben, mit dessen Hilfe durch Programmextraktion
lauffähige Programme entwickelt werden können.
In dieser Doktorarbeit wird eine rechnerische Interpretation
konstruktiver Beweise mit induktiven und koinduktiven Definitionen
angegeben und untersucht. Die Interpretation geschieht dadurch,
daß der rechnerische Gehalt von Beweisen in eine
Programmiersprache übersetzt wird. Diese übersetzung wird
Programmextraktion genannt; sie basiert auf Kreisels modifizierter
Realisierbarkeit. Wir untersuchen die beweistheoretischen Grundlagen
der Programmextraktion und erweitern den Beweisassistenten Minlog auf
der Basis der erhaltenen theoretischen Resultate. Wenn eine Formel in
Minlog formal bewiesen ist, läßt sich ein Programm aus dem
Beweis extrahieren, und dieses extrahierte Programm kann in Minlog
ausgeführt werden. Ferner sind extrahierte Programme beweisbar
korrekt bezüglich der entsprechenden Formel aufgrund eines
Korrektheitsatzes, den wir beweisen werden. Innerhalb unserer
formalen Theorie bearbeiten wir einige aus der Literatur bekannte
Fallstudien im Bereich der exakten reellen Arithmetik. Wir entwickeln
eine vollständige Formalisierung der entsprechenden Beweise und
diskutieren die in Minlog automatisch extrahierten Programme