37 research outputs found
From coinductive proofs to exact real arithmetic: theory and applications
Based on a new coinductive characterization of continuous functions we
extract certified programs for exact real number computation from constructive
proofs. The extracted programs construct and combine exact real number
algorithms with respect to the binary signed digit representation of real
numbers. The data type corresponding to the coinductive definition of
continuous functions consists of finitely branching non-wellfounded trees
describing when the algorithm writes and reads digits. We discuss several
examples including the extraction of programs for polynomials up to degree two
and the definite integral of continuous maps
A coinductive approach to verified exact real number computation
We present an approach to verified programs for
exact real number computation that is based on inductive and
coinductive definitions and program extraction from proofs.
We informally discuss the theoretical background of this method
and give examples of extracted programs implementing
the translation between the representation by fast converging
rational Cauchy sequences and the signed binary
digit representations of real numbers
Enhanced Realizability Interpretation for Program Extraction
This thesis presents Intuitionistic Fixed Point Logic (IFP), a schema for formal systems aimed to work with program extraction from proofs. IFP in its basic form allows proof construction based on natural deduction inference rules, extended by induction and coinduction. The corresponding system RIFP (IFP with realiz-ers) enables transforming logical proofs into programs utilizing the enhanced re-alizability interpretation. The theoretical research is put into practice in PRAWF1, a Haskell-based proof assistant for program extraction
Optimized Program Extraction for Induction and Coinduction
The paper proves soundness of an optimized realizability interpretationfor a logic supporting strictly positive induction and coinduction. Theoptimization concerns the special treatment of Harrop formulas whichyields simpler extracted programs. It is shown that wellfounded inductionis an instance of strictly positive induction and from this a newcomputationally meaningful formulation of the Archimedean property forreal numbers is derived. An example of program extraction in computableanalysis shows that Archimedean induction can be used to eliminatecountable choic
Intuitionistic fixed point logic
The logical system IFP introduced in this paper supports program extraction from proofs, unifying theoretical and practical advantages: Based on first-order logic and powerful strictly positive inductive and coinductive definitions, IFP support abstract axiomatic mathematics with a large amount of classical logic. The Haskell-like target programming language has a denotational and an operational semantics which are linked through a computational adequacy theorem that extends to infinite data. Program extraction is fully verified and highly optimised, thus extracted programs are guaranteed to be correct and free of junk. A case study in exact real number computation underpins IFP's effectiveness
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
Intuitionistic Fixed Point Logic
We study the system IFP of intuitionistic fixed point logic, an extension of
intuitionistic first-order logic by strictly positive inductive and coinductive
definitions. We define a realizability interpretation of IFP and use it to
extract computational content from proofs about abstract structures specified
by arbitrary classically true disjunction free formulas. The interpretation is
shown to be sound with respect to a domain-theoretic denotational semantics and
a corresponding lazy operational semantics of a functional language for
extracted programs. We also show how extracted programs can be translated into
Haskell. As an application we extract a program converting the signed digit
representation of real numbers to infinite Gray-code from a proof of inclusion
of the corresponding coinductive predicates.Comment: 65 page
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
Extracting total Amb programs from proofs
We present a logical system CFP (Concurrent Fixed Point Logic) supporting the
extraction of nondeterministic and concurrent programs that are provably total
and correct. CFP is an intuitionistic first-order logic with inductive and
coinductive definitions extended by two propositional operators: Rrestriction,
a strengthening of implication, and an operator for total concurrency. The
source of the extraction are formal CFP proofs, the target is a lambda calculus
with constructors and recursion extended by a constructor Amb (for McCarthy's
amb) which is interpreted operationally as globally angelic choice and is used
to implement nondeterminism and concurrency. The correctness of extracted
programs is proven via an intermediate domain-theoretic denotational semantics.
We demonstrate the usefulness of our system by extracting a nondeterministic
program that translates infinite Gray code into the signed digit
representation. A noteworthy feature of CFP is the fact that the proof rules
for restriction and concurrency involve variants of the classical law of
excluded middle that would not be interpretable computationally without Amb.Comment: 39 pages + 4 pages appendix. arXiv admin note: text overlap with
arXiv:2104.1466