9 research outputs found

    An algorithmic approach to the existence of ideal objects in commutative algebra

    Full text link
    The existence of ideal objects, such as maximal ideals in nonzero rings, plays a crucial role in commutative algebra. These are typically justified using Zorn's lemma, and thus pose a challenge from a computational point of view. Giving a constructive meaning to ideal objects is a problem which dates back to Hilbert's program, and today is still a central theme in the area of dynamical algebra, which focuses on the elimination of ideal objects via syntactic methods. In this paper, we take an alternative approach based on Kreisel's no counterexample interpretation and sequential algorithms. We first give a computational interpretation to an abstract maximality principle in the countable setting via an intuitive, state based algorithm. We then carry out a concrete case study, in which we give an algorithmic account of the result that in any commutative ring, the intersection of all prime ideals is contained in its nilradical

    Program extraction applied to monadic parsing

    Get PDF

    Nonflatness and totality

    Get PDF
    We interpret finite types as domains over nonflat inductive base types in order to bring out the finitary core that seems to be inherent in the concept of totality. We prove a strong version of the Kreisel density theorem by providing a total compact element as a witness, a result that we cannot hope to have if we work with flat base types. To this end, we develop tools that deal adequately with possibly inconsistent finite sets of information. The classical density theorem is reestablished via a ‘finite density theorem,’ and corollaries are obtained, among them Berger's separation property

    Program extraction from coinductive proofs and its application to exact real arithmetic

    Get PDF
    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

    Minlog - A Tool for Program Extraction Supporting Algebras and Coalgebras

    No full text
    Minlog is an interactive proof system which implements prooftheoreticmethods and applies them to verication and program extraction.We give an overview of the system and demonstrate how it can beused to exploit the computational content in (co)algebraic proofs and todevelop correct and ecient programs

    Extraction de code fonctionnel certifié à partir de spécifications inductives.

    Get PDF
    Les outils d aide à la preuve basés sur la théorie des types permettent à l utilisateur d adopter soit un style fonctionnel, soit un style relationnel (c est-à-dire en utilisant des types inductifs). Chacun des deux styles a des avantages et des inconvénients. Le style relationnel peut être préféré parce qu il permet à l utilisateur de décrire seulement ce qui est vrai, de s abstraire temporairement de la question de la terminaison, et de s en tenir à une description utilisant des règles. Cependant, une spécification relationnelle n est pas exécutable.Nous proposons un cadre général pour transformer une spécification inductive en une spécification fonctionnelle, en extrayant à partir de la première une fonction et en produisant éventuellement la preuve de correction de la fonction extraite par rapport à sa spécification inductive. De plus, à partir de modes définis par l utilisateur, qui permettent de considérer les arguments de la relation comme des entrées ou des sorties (de fonction), nous pouvons extraire plusieurs comportements calculatoires à partir d un seul type inductif.Nous fournissons également deux implantations de notre approche, l une dans l outil d aide à la preuve Coq et l autre dans l environnement Focalize. Les deux sont actuellement distribuées avec leurs outils respectifs.Proof assistants based on type theory allow the user to adopt either a functional style, or a relational style (e.g., by using inductive types). Both styles have advantages and drawbacks. Relational style may be preferred because it allows the user to describe only what is true, discard momentarily the termination question, and stick to a rule-based description. However, a relational specification is usually not executable.We propose a general framework to turn an inductive specification into a functional one, by extracting a function from the former and eventually produce the proof of soundness of the extracted function w.r.t. its inductive specification. In addition, using user-defined modes which label inputs and outputs, we are able to extract several computational contents from a single inductive type.We also provide two implementations of our approach, one in the Coq proof assistant and the other in the Focalize environnement. Both are currently distributed with the respective tools.PARIS-CNAM (751032301) / SudocSudocFranceF

    Towards an arithmetic for partial computable functionals

    Get PDF
    The thesis concerns itself with nonflat Scott information systems as an appropriate denotational semantics for the proposed theory TCF+, a constructive theory of higher-type partial computable functionals and approximations. We prove a definability theorem for type systems with at most unary constructors via atomic-coherent information systems, and give a simple proof for the density property for arbitrary finitary type systems using coherent information systems. We introduce the notions of token matrices and eigen-neighborhoods, and use them to locate normal forms of neighborhoods, as well as to demonstrate that even nonatomic information systems feature implicit atomicity. We then establish connections between coherent information systems and various pointfree structures. Finally, we introduce a fragment of TCF+ and show that extensionality can be eliminated.Diese Dissertation befasst sich mit nichtflachen Scott-Informationssystemen als geeignete denotationelle Semantik für die vorgestellte Theorie TCF+, eine konstruktive Theorie von partiellen berechenbaren Funktionalen und Approximationen in höheren Typen. Auf Basis von atomisch-kohärenten Informationssystemen wird ein Definierbarkeitssatz für Typsysteme mit höchstens einstelligen Konstruktoren gegeben und ein einfacher Beweis des Dichtheitssatzes von beliebigen finitären Typsystemen auf kohärenten Informationssystemen erbracht. Token-Matrizen und Eigenumgebungen werden eingeführt und verwendet, um Normalformen von Umgebungen aufzufinden und um aufzuzeigen, dass auch nichtatomische Informationssysteme über implizite Atomizität verfügen. Im Anschluss werden Verbindungen zwischen kohärenten Informationssystemen und verschiedenen punktfreien Strukturen geknüpft. Schlussendlich wird ein Fragment von TCF+ vorgestellt und gezeigt, dass Extensionalität umgangen werden kann
    corecore