45 research outputs found

    Programming Languages and Systems

    Get PDF
    This open access book constitutes the proceedings of the 28th European Symposium on Programming, ESOP 2019, which took place in Prague, Czech Republic, in April 2019, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2019

    Ein nichtdeterministischer Call-by-Need-Lambda-Kalkül : Nachweis der Präkongruenzeigenschaft für Similarity über eine Erweiterung von Howes Methode auf Sharing

    Get PDF
    In this dissertation a non-deterministic lambda-calculus with call-by-need evaluation is treated. Call-by-need means that subexpressions are evaluated at most once and only if their value must be known to compute the overall result. Also called "sharing", this technique is inevitable for an efficient implementation. In the lambda-ND calculus of chapter 3 sharing is represented explicitely by a let-construct. Above, the calculus has function application, lambda abstractions, sequential evaluation and pick for non-deterministic choice. Non-deterministic lambda calculi play a major role as a theoretical foundation for concurrent processes or side-effected input/output. In this work, non-determinism additionally makes visible when sharing is broken. Based on the bisimulation method this work develops a notion of equality which respects sharing. Using bisimulation to establish contextual equivalence requires substitutivity within contexts, i.e., the ability to "replace equals by equals" within every program or term. This property is called congruence or precongruence if it applies to a preorder. The open similarity of chapter 4 represents a new concept, insofar that the usual definition of a bisimulation is impossible in the lambda-ND calculus. So in section 3.2 a further calculus lambda-Approx has to be defined. Section 3.3 contains the proof of the so-called Approximation Theorem which states that the evaluation in lambda-ND and lambda-Approx agrees. The foundation for the non-trivial precongruence proof is set out in chapter 2 where the trailblazing method of Howe is extended to be capable with sharing. By the use of this (extended) method, the Precongruence Theorem proves open similarity to be a precongruence, involving the so-called precongruence candidate relation. Joining with the Approximation Theorem we obtain the Main Theorem which says that open similarity of the lambda-Approx calculus is contained within the contextual preorder of the lambda-ND calculus. However, this inclusion is strict, a property whose non-trivial proof involves the notion of syntactic continuity. Finally, chapter 6 discusses possible extensions of the base calculus such as recursive bindings or case and constructors. As a fundamental study the calculus lambda-ND provides neither of these concepts, since it was intentionally designed to keep the proofs as simple as possible. Section 6.1 illustrates that the addition case and constructors could be accomplished without big hurdles. However, recursive bindings cannot be represented simply by a fixed point combinator like Y, thus further investigations are necessary.Die vorliegende Dissertation behandelt einen nichtdeterministischen Lambda-Kalkül mit sogenannter "call-by-need" Auswertung. Diese Auswertungsstrategie wertet Teilausdrücke nur bei Bedarf aus und verwendet Zwischenergebnisse dabei so weit wie möglich wieder. Eine solche Technik wird auch als "Sharing" bezeichnet und ist für eine effiziente Implementierung unverzichtbar. Im Kalkül Lambda-ND aus Kapitel 3 wird Sharing explizit durch ein let-Konstrukt dargestellt. Darüberhinaus verfügt der Kalkül über Funktionsanwendungen, Abstraktionen mittels Lambda, sequentielle Auswertung über ein seq-Konstrukt und pick für nichtdeterministische Auswahl. Abgesehen von der großen Bedeutung nichtdeterministischer Lambda-Kalküle u.a. als theoretischer Grundlage für nebenläufige Prozesse oder von deklarativer, Seiteneffekt-behafteter Ein-/Ausgabe, wird in diesem Fall durch den Nichtdeterminismus erst deutlich, wann Sharing verletzt ist. In dieser Arbeit wird nun, basierend auf der Methode der Bisimulation, ein Gleichheitsbegriff entwickelt, der Sharing respektiert. Um Bisimulation zum Beweis von kontextueller Gleichheit verwenden zu können, ist Einsetzbarkeit in Kontexte erforderlich, d.h. daß gleiche Terme quasi als Unterprogramme austauschbar sind. Diese Eigenschaft heißt Kongruenz bzw. Präkongruenz, wenn sie eine Präordnung betrifft. Die Open Similarity in Kapitel 4 ist insofern neu, als daß die übliche Definition einer Bisimulation im call-by-need Kalkül Lambda-ND nicht möglich ist und daher in Abschnitt 3.2 ein weiterer Kalkül Lambda-Approx definiert werden muß. Das in Abschnitt 3.3 bewiesene Approximation Theorem stellt die Übereinstimmung der Auswertung in Lambda-ND- und Lambda-Approx-Kalkül her. Die Basis für den Präkongruenzbeweis ist Kapitel 2, in dem die bahnbrechende Methode von Howe, die für eine ganze Klasse von Sprachen anwendbar ist, entsprechend auf Sharing erweitert wird. Open Similarity wird damit im Precongruence Theorem über die Stabilität des sogenannten Präkongruenzkandidaten als Präkongruenz nachgewiesen. Die Verknüpfung mit dem Approximation Theorem ergibt das Main Theorem, welches zeigt, daß die Open Similarity des Lambda-Approx-Kalküls in der kontextuellen Präordnung von Lambda-ND enthalten ist. Diese Inklusion ist jedoch strikt. Der Nachweis dieser Eigenschaft ist nicht trivial und wird in Abschnitt 5.2 über den Begriff der syntaktischen Stetigkeit geführt. Abschließend werden in Kapitel 6 mögliche Erweiterungen behandelt, da der Basiskalkül Lambda-ND als grundlegende Studie weder über Datentypen noch über rekursive Bindungen in seinem let-Konstrukt verfügt, um die Beweisführung nicht unnötig zu verkomplizieren. Die Betrachtungen in Abschnitt 6.1 erscheinen vielversprechend, daß Datentypen, also case und Konstruktoren, ohne größere Schwierigkeiten zum Kalkül hinzugefügt werden können. Für rekursive let-Bindungen hingegen wird in Abschnitt 6.2 gezeigt, daß sie nicht einfach mittels eines Fixpunktkombinators, wie z.B. Y, dargestellt werden können

    Automated Deduction – CADE 28

    Get PDF
    This open access book constitutes the proceeding of the 28th International Conference on Automated Deduction, CADE 28, held virtually in July 2021. The 29 full papers and 7 system descriptions presented together with 2 invited papers were carefully reviewed and selected from 76 submissions. CADE is the major forum for the presentation of research in all aspects of automated deduction, including foundations, applications, implementations, and practical experience. The papers are organized in the following topics: Logical foundations; theory and principles; implementation and application; ATP and AI; and system descriptions

    Mathematical Logic: Proof Theory, Constructive Mathematics (hybrid meeting)

    Get PDF
    The Workshop "Mathematical Logic: Proof Theory, Constructive Mathematics" focused on proofs both as formal derivations in deductive systems as well as on the extraction of explicit computational content from given proofs in core areas of ordinary mathematics using proof-theoretic methods. The workshop contributed to the following research strands: interactions between foundations and applications; proof mining; constructivity in classical logic; modal logic and provability logic; proof theory and theoretical computer science; structural proof theory

    Coalgebraic Methods for Object-Oriented Specification

    Get PDF
    This thesis is about coalgebraic methods in software specification and verification. It extends known techniques of coalgebraic specification to a more general level to pave the way for real world applications of software verification. There are two main contributions of the present thesis: 1. Chapter 3 proposes a generalisation of the familiar notion of coalgebra such that classes containing methods with arbitrary types (including binary methods) can be modelled with these generalised coalgebras. 2. Chapter 4 presents the specification language CCSL (short for Coalgebraic Class Specification Language), its syntax, its semantics, and a prototype compiler that translates CCSL into higher-order logic.Die Dissertation beschreibt coalgebraische Mittel und Methoden zur Softwarespezifikation und -verifikation. Die Ergebnisse dieser Dissertation vereinfachen die Anwendung coalgebraischer Spezifikations- und Verifikationstechniken und erweitern deren Anwendbarkeit. Damit werden Softwareverifikation im Allgemeinen und im Besonderen coalgebraische Methoden zur Softwareverifikation der praktischen Anwendbarkeit ein Stück nähergebracht. Diese Dissertation enthält zwei wesentliche Beiträge: 1. Im Kapitel 3 wird eine Erweiterung des klassischen Begriffs der Coalgebra vorgestellt. Diese Erweiterung erlaubt die coalgebraische Modellierung von Klassenschnittstellen mit beliebigen Methodentypen (insbesondere mit binären Methoden). 2. Im Kapitel 4 wird die coalgebraische Spezifikationssprache CCSL (Coalgebraic Class Specification Language) vorgestellt. Die Bescheibung umfasst Syntax, Semantik und einen Prototypcompiler, der CCSL Spezifikationen in Logik höherer Ordnung (passend für die Theorembeweiser PVS und Isabelle/HOL) übersetzt

    Behavioral Equivalences for Higher-Order Languages with Probabilities

    Get PDF
    Higher-order languages, whose paradigmatic example is the lambda-calculus, are languages with powerful operators that are capable of manipulating and exchanging programs themselves. This thesis studies behavioral equivalences for programs with higher-order and probabilistic features. Behavioral equivalence is formalized as a contextual, or testing, equivalence, and two main lines of research are pursued in the thesis. The first part of the thesis focuses on contextual equivalence as a way of investigating the expressiveness of different languages. The discriminating powers offered by higher-order concurrent languages (Higher-Order pi-calculi) are compared with those offered by higher-order sequential languages (à la lambda-calculus) and by first-order concurrent languages (à la CCS). The comparison is carried out by examining the contextual equivalences induced by the languages on two classes of first-order processes, namely nondeterministic and probabilistic processes. As a result, the spectrum of the discriminating powers of several varieties of higher-order and first-order languages is obtained, both in a nondeterministic and in a probabilistic setting. The second part of the thesis is devoted to proof techniques for contextual equivalence in probabilistic lambda-calculi. Bisimulation-based proof techniques are studied, with particular focus on deriving bisimulations that are fully abstract for contextual equivalence (i.e., coincide with it). As a first result, full abstraction of applicative bisimilarity and similarity are proved for a call-by-value probabilistic lambda-calculus with a parallel disjunction operator. Applicative bisimulations are however known not to scale to richer languages. Hence, more robust notions of bisimulations for probabilistic calculi are considered, in the form of environmental bisimulations. Environmental bisimulations are defined for pure call-by-name and call-by-value probabilistic lambda-calculi, and for a (call-by-value) probabilistic lambda-calculus extended with references (i.e., a store). In each case, full abstraction results are derived
    corecore