57 research outputs found

    The OCaml system release 5.0: Documentation and user's manual

    Get PDF
    This manual documents the release 5.0 of the OCaml system. It is organized as follows. Part I, "An introduction to OCaml", gives an overview of the language. Part II, "The OCaml language", is the reference description of the language. Part III, "The OCaml tools", documents the compilers, toplevel system, and programming utilities. Part IV, "The OCaml library", describes the modules provided in the standard library. Part V, “Indexes”, contains an index of all identifiers defined in the standard library, and an index of keywords

    Strong Normalization by Type-Directed Partial Evaluation and Run-Time Code Generation (Preliminary Version)

    Get PDF
    We investigate the synergy between type-directed partial evaluation and run-time code generation for the Caml dialect of ML. Type-directed partial evaluation maps simply typed, closed Caml values to a representation of their long beta-eta-normal form. Caml uses a virtual machine and has the capability to load byte code at run time. Representing the long beta-eta-normal forms as byte code gives us the ability to strongly normalize higher-order values (i.e., weak head normal forms in ML), to compile the resulting strong normal forms into byte code, and to load this byte code all in one go, at run time.We conclude this note with a preview of our current work on scalingup strong normalization by run-time code generation to the Camlmodule language

    Learning-Assisted Automated Reasoning with Flyspeck

    Full text link
    The considerable mathematical knowledge encoded by the Flyspeck project is combined with external automated theorem provers (ATPs) and machine-learning premise selection methods trained on the proofs, producing an AI system capable of answering a wide range of mathematical queries automatically. The performance of this architecture is evaluated in a bootstrapping scenario emulating the development of Flyspeck from axioms to the last theorem, each time using only the previous theorems and proofs. It is shown that 39% of the 14185 theorems could be proved in a push-button mode (without any high-level advice and user interaction) in 30 seconds of real time on a fourteen-CPU workstation. The necessary work involves: (i) an implementation of sound translations of the HOL Light logic to ATP formalisms: untyped first-order, polymorphic typed first-order, and typed higher-order, (ii) export of the dependency information from HOL Light and ATP proofs for the machine learners, and (iii) choice of suitable representations and methods for learning from previous proofs, and their integration as advisors with HOL Light. This work is described and discussed here, and an initial analysis of the body of proofs that were found fully automatically is provided

    Design, Implementierung und Evaluierung einer virtuellen Maschine für Oz

    Get PDF
    Diese Arbeit beschreibt Design, Implementierung und Evaluierung einer virtuellen Maschine für die Kernsprache von Oz, die wir mit L bezeichnen. Wir stellen L aus didaktischen Gründen als Erweiterung einer Teilsprache von SML dar. Die wichtigsten Unterschiede von L zu SML sind: logische Variablen, Threads, Synchronisation und dynamische Typisierung. Ausgehend von einer informellen Beschreibung der dynamischen Semantik über ein Graphenmodell entwickeln wir daraus schrittweise auf unterschiedlichen Abstraktionsebenen eine virtuelle Maschine für L. Wir beschreiben zunächst ein einfaches Grundmodell. Darauf aufbauend diskutieren wir verschiedene Optimierungen. Schließlich verfeinern wir weiter, indem wir auf Aspekte der Implementierung des Modells eingehen. Abschließend evaluieren wir die Effektivität der vorgestellten Techniken an einer Reihe von größeren Anwendungen aus der Praxis. Weiter zeigen wir, daß die Implementierung der Sprache kompetitiv ist mit den schnellsten Emulatoren für statisch getypte funktionale Sprachen.This thesis presents the design, implementation and evaluation of a virtual machine for the core language of Oz, which we call L. We present L for didactic reasons as an extension of a sublanguage of SML. The most important differences between L and SML are: logic variables, threads, synchronization and dynamic typing. Starting from an informal description of the dynamic semantics in terms of a graph model, we develop step by step on various levels of abstraction a virtual machine for L. We begin with a simple basic model. We then propose several optimizations of this model. Afterwards we keep refining our approach by addressing specific aspects of the implementation of the model. Finally we evaluate the effectiveness of the techniques using a set of larger real world applications. Further we show, that the implementation of the language is competitive with the fastest emulators for statically typed functional languages

    The Coq Proof Assistant : Reference Manual : Version 7.2

    Get PDF
    Coq is a proof assistant based on a higher-order logic. Coq allows to handle calculus mathematical assertions and to check mechanically proofs of these assertions. It helps to find formal proofs, and allows extraction of a certified program from the constructive proof of its formal specification. This document is the reference manual for the version V7.2 of Coq which is available from http://coq.inria.fr

    Design, Implementierung und Evaluierung einer virtuellen Maschine für Oz

    Get PDF
    Diese Arbeit beschreibt Design, Implementierung und Evaluierung einer virtuellen Maschine für die Kernsprache von Oz, die wir mit L bezeichnen. Wir stellen L aus didaktischen Gründen als Erweiterung einer Teilsprache von SML dar. Die wichtigsten Unterschiede von L zu SML sind: logische Variablen, Threads, Synchronisation und dynamische Typisierung. Ausgehend von einer informellen Beschreibung der dynamischen Semantik über ein Graphenmodell entwickeln wir daraus schrittweise auf unterschiedlichen Abstraktionsebenen eine virtuelle Maschine für L. Wir beschreiben zunächst ein einfaches Grundmodell. Darauf aufbauend diskutieren wir verschiedene Optimierungen. Schließlich verfeinern wir weiter, indem wir auf Aspekte der Implementierung des Modells eingehen. Abschließend evaluieren wir die Effektivität der vorgestellten Techniken an einer Reihe von größeren Anwendungen aus der Praxis. Weiter zeigen wir, daß die Implementierung der Sprache kompetitiv ist mit den schnellsten Emulatoren für statisch getypte funktionale Sprachen.This thesis presents the design, implementation and evaluation of a virtual machine for the core language of Oz, which we call L. We present L for didactic reasons as an extension of a sublanguage of SML. The most important differences between L and SML are: logic variables, threads, synchronization and dynamic typing. Starting from an informal description of the dynamic semantics in terms of a graph model, we develop step by step on various levels of abstraction a virtual machine for L. We begin with a simple basic model. We then propose several optimizations of this model. Afterwards we keep refining our approach by addressing specific aspects of the implementation of the model. Finally we evaluate the effectiveness of the techniques using a set of larger real world applications. Further we show, that the implementation of the language is competitive with the fastest emulators for statically typed functional languages
    corecore