11 research outputs found

    Amortized Analysis via Coinduction

    Full text link
    Amortized analysis is a program cost analysis technique for data structures in which the cost of operations is specified in aggregate, under the assumption of continued sequential use. Typically, amortized analyses are done inductively, in terms of finite sequences of operations; we demonstrate that coinduction provides a more natural description. We describe a classic amortized data structure, the batched queue, and describe its amortized analysis in calf\textbf{calf}, a type theory for cost analysis

    How to write a coequation

    Get PDF
    There is a large amount of literature on the topic of covarieties, coequations and coequational specifications, dating back to the early seventies. Nevertheless, coequations have not (yet) emerged as an everyday practical specification formalism for computer scientists. In this review paper, we argue that this is partly due to the multitude of syntaxes for writing down coequations, which seems to have led to some confusion about what coequations are and what they are for. By surveying the literature, we identify four types of syntaxes: coequations-as-corelations, coequations-as-predicates, coequations-as-equations, and coequations-as-modal-formulas. We present each of these in a tutorial fashion, relate them to each other, and discuss their respective uses

    (Ω, Ξ)-Logic: On the Algebraic Extension of Coalgebraic Specifications

    Get PDF
    We present an extension of standard coalgebraic specification techniques for statebased systems which allows us to integrate constants and n-ary operations in a smooth way and, moreover, leads to a simplification of the coalgebraic structure of the models of a specification. The framework of (Ω,Ξ)-logic can be considered as the result of a translation of concepts of observational logic (cf. [9]) into the coalgebraic world. As a particular outcome we obtain the notion of an (Ω, Ξ)- structure and a sound and complete proof system for (first-order) observational properties of specifications

    Universal coalgebra: a theory of systems

    Get PDF
    In the semantics of programming, finite data types such as finite lists, have traditionally been modelled by initial algebras. Later final coalgebras were used in order to deal with infinite data types. Coalgebras, which are the dual of algebras, turned out to be suited, moreover, as models for certain types of automata and more generally, for (transition and dynamical) systems. An important property of initial algebras is that they satisfy the familiar principle of induction. Such a principle was missing for coalgebras until the work of Aczel (1988) on a theory of non-wellfounded sets, in which he introduced a proof principle nowadays called coinduction. It was formulated in terms of bisimulation, a notion originally stemming from the world of concurrent programming languages (Milner, 1980; Park, 1981). Using the notion of c

    Coalgebraic modelling of timed processes

    Get PDF

    Coalgebras, clone theory, and modal logic

    Get PDF
    gekĂŒrzte Fassung: Coalgebren wurden sowohl in der Mathematik (seit den 70er Jahren) als auch in der theoretischen Informatik (seit den 90er Jahren) untersucht. In der Mathematik sind Coalgebren dual zu universellen Algebren definiert. Sie bestehen aus einer TrĂ€germenge A zusammen mit Cofunktionen ? : A ? , die A in die n-fache disjunkte Vereinigung von sich selbst abbilden. Das Ziel der Forschung ist hier vor allem, duale Versionen von Definitionen und Resultaten aus der universellen Algebra fĂŒr die Welt der Coalgebren zu finden. Die theoretische Informatik betrachtet Coalgebren von kategorieller Seite aus. FĂŒr einen gegebenen Funktor F : C ? C sind Coalgebren als Paare (S,"alpha") definiert, wobei S ein Objekt von C und "alpha" : S ? F(S) ein Morphismus in C ist. Somit stellt der obige Ansatz mit Cofunktionen einen Spezialfall dar. Begriffe wie Homomorphismus oder BisimularitĂ€t lassen sich auf einfache Weise ausdrĂŒcken und handhaben. Solche Coalgebren modellieren eine große Anzahl von dynamischen Systemen. Das liefert eine kanonische und vereinheitlichende Sicht auf diese Systeme. Die vorliegende Dissertation fĂŒhrt beide genannten Forschungsrichtungen der Coalgebren weiter: Teil I beschĂ€ftigt sich mit "klassischen" Coalgebren, also solchen, wie sie in der universellen Algebra untersucht werden. Insbesondere wird das VerhĂ€ltnis zur Klontheorie erforscht. Teil II der Arbeit widmet sich dem kategoriellen Ansatz aus der theoretischen Informatik. Von speziellem Interesse ist hier die Anwendung von Coalgebren zur Spezifikation von Systemen. Coalgebren und Klontheorie In der universellen Algebra spielen Systeme von Funktionen eine bedeutende Rolle, u.a. in der Klontheorie. Dort betrachtet man Funktionen auf einer festen gegebenen Grundmenge. Klone von Funktionen sind Mengen von Funktionen, die alle Projektionen enthalten und die gegen Superposition (d.h. Einsetzen) abgeschlossen sind. Extern lassen sich diese Klone als Galois-abgeschlossene Mengengzgl. der Galois-Verbindung zwischen Funktionen und Relationen darstellen. Diese Galois-Verbindung wird durch die Eigenschaft einer Funktion induziert, eine Relation zu bewahren. Dual zu Klonen von Funktionen wurde von B. CsĂĄkĂĄny auch Klone von Cofunktionen untersucht. Folglich stellt sich die Frage, ob solche Klone ebenfalls mittels einer geeigneten Galois-Verbindung charakterisiert werden können. Die vorliegende Arbeit fĂŒhrt zunĂ€chst den Begriff von Corelationen ein. Es wird auf kanonische Weise definiert, was es heißt, daß eine Cofunktion eine Corelation bewahrt. Dies mĂŒndet in einer Galois-Theorie, deren Galois-abgeschlossene Mengen von Cofunktionen tatsĂ€chlich genau die Klone von Cofunktionen sind. Überdies entsprechen die Galois-abgeschlossenen Mengen von Corelationen genau den Klonen von Corelationen. Die Galois-Theorien von Funktionen und Relationen einerseits und Cofunktionen und Corelationen anderseits sind sich sehr Ă€hnlich. Das wirft die Frage auf, welche Voraussetzungen allgemein nötig sind, um solche und Ă€hnliche Galois-Theorien aufzustellen und die entsprechenden Galois-abgeschlossenen Mengen zu charakterisieren. Das Ergebnis ist eine Metatheorie, bei der die Gemeinsamkeiten in den Charakterisierungen der Galois-abgeschlossenen Mengen herausgearbeitet sind. Bereits bekannte Galois-Theorien erweisen sich als SpezialfĂ€lle dieser Metatheorie, und zwar die Galois-Theorien von partiellen Funktionen und Relationen, von mehrwertigen Funktionen und Relationen und von einstelligen Funktionen und Relationen...

    Components as coalgebras

    Get PDF
    In the tradition of mathematical modelling in physics and chemistry, constructive formal specification methods are based on the notion of a software model, understood as a state-based abstract machine which persists and evolves in time, according to a behavioural model capturing, for example, partiality or (different degrees of) nondeterminism. This can be identified with the more prosaic notion of a software component advocated by the software industry as ‘building block’ of large, often distributed, systems. Such a component typically encapsulates a number of services through a public interface which provides a limited access to a private state space, paying tribute to the nowadays widespread object-oriented programming principles. The tradition of communicating systems formal design, by contrast, has developed the notion of a process as an abstraction of the behavioural patterns of a computing system, deliberately ignoring the data and state aspects of software systems. Both processes and components are among the broad group of computing phenomena which are hardly definable (or simply not definable) algebraically, i.e., in terms of a complete set of constructors. Their semantics is essentially observational, in the sense that all that can be traced of their evolution is their interaction with the environment. Therefore, coalgebras, whose theory has recently witnessed remarkable developments, appear as a suitable modelling tool. The basic observation of category theory that universal constructions always come in pairs, has motivated research on the duality between algebras and coalgebras, which provides a bridge between models of static (constructive, data-oriented) and dynamical (observational, behaviour-oriented) systems. At the programming level, the intuitive symmetry between data and behaviour provides evidence of such a duality, in its canonical initial-final specialisation. This line of thought entails both definitional and proof principles, i.e., a basis for the development of program calculi directly based on (actually driven by) type specifications. Moreover, such properties can be expressed in terms of generic programming combinators which are used, not only to calculate programs, but also to program with. Framed in this context, this thesis addresses the following main themes: The investigation of a semantic model for (state-based) software components. These are regarded as concrete coalgebras for some Set endofunctors, with specified initial conditions, and organise themselves in a bicategorical setting. The model is able to capture both behavioural issues, which are usually left implicit in state-based specification methods, and interaction through structured data, which is usually a minor concern on process calculi. Two basic cases are considered entailing, respectively, a ‘functional’ and an ‘object-oriented’ shape for components. Both cases are parametrized by a model of behaviour, introduced as a strong (usually commutative) monad. The development of corresponding component calculi, also parametric on the behaviour model, which adds to the genericity of the approach. The study of processes and the ‘reconstruction’ of classical (CCS-like) process calculi on top of their representation as inhabitants of (the carriers of) final coalgebras, in an essentially pointfree, calculational style. An overall concern for genericity, in the sense that models and calculi for both components and processes are parametric on the behaviour model and the interaction discipline, respectively. The animation of both processes and components in CHARITY, a functional programming language entirely based on inductive and coinductive categorical data types. In particular this leads to the development of a process calculi interpreter parametric on the interaction discipline.PRAXIS XXI - Projecto LOGCAMP; POO11/IC-PME/II/S -Projecto KARMA; Fundação para a CiĂȘncia e Tecnologia; ALGORITMI Research Center

    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
    corecore