710 research outputs found

    Domain and range for angelic and demonic compositions

    Full text link
    We give finite axiomatizations for the varieties generated by representable domain--range algebras when the semigroup operation is interpreted as angelic or demonic composition, respectively

    Domain Range Semigroups and Finite Representations

    Get PDF
    Relational semigroups with domain and range are a useful tool for modelling nondeterministic programs. We prove that the representation class of domain-range semigroups with demonic composition is not finitely axiomatisable. We extend the result for ordered domain algebras and show that any relation algebra reduct signature containing domain, range, converse, and composition, but no negation, meet, nor join has the finite representation property. That is any finite representable structure of such a signature is representable over a finite base. We survey the results in the area of the finite representation property

    Featherweight VeriFast

    Full text link
    VeriFast is a leading research prototype tool for the sound modular verification of safety and correctness properties of single-threaded and multithreaded C and Java programs. It has been used as a vehicle for exploration and validation of novel program verification techniques and for industrial case studies; it has served well at a number of program verification competitions; and it has been used for teaching by multiple teachers independent of the authors. However, until now, while VeriFast's operation has been described informally in a number of publications, and specific verification techniques have been formalized, a clear and precise exposition of how VeriFast works has not yet appeared. In this article we present for the first time a formal definition and soundness proof of a core subset of the VeriFast program verification approach. The exposition aims to be both accessible and rigorous: the text is based on lecture notes for a graduate course on program verification, and it is backed by an executable machine-readable definition and machine-checked soundness proof in Coq

    Domain and range for angelic and demonic compositons

    Get PDF
    We give finite axiomatizations for the varieties generated by representable domain-range algebras when the semigroup operation is interpreted as angelic or demonic composition, respectively

    Refining Constructive Hybrid Games

    Get PDF

    Relational Concurrent Refinement II: Internal Operations and Outputs

    Get PDF
    Two styles of description arise naturally in formal specification: state-based and behavioural. In state-based notations, a system is characterised by a collection of variables, and their values determine which actions may occur throughout a system history. Behavioural specifications describe the chronologies of actions -- interactions between a system and its environment. The exact nature of such interactions is captured in a variety of semantic models with corresponding notions of refinement; refinement in state based systems is based on the semantics of sequential programs and is modelled relationally. Acknowledging that these viewpoints are complementary, substantial research has gone into combining the paradigms. The purpose of this paper is to do three things. First, we survey recent results linking the relational model of refinement to the process algebraic models. Specifically, we detail how variations in the relational framework lead to relational data refinement being in correspondence with traces-divergences, singleton failures and failures-divergences refinement in a process semantics. Second, we generalise these results by providing a general flexible scheme for incorporating the two main ''erroneous'' concurrent behaviours: deadlock and divergence, into relational refinement. This is shown to subsume previous characterisations. In doing this we derive relational refinement rules for specifications containing both internal operations and outputs that corresponds to failures-divergences refinement. Third, the theory has been formally specified and verified using the interactive theorem prover KIV

    A relational calculus for the design of distributed algorithms

    Get PDF
    In deze moderne tijd wordt het kunnen localiseren en verkrijgen van de juiste informatie steeds belangrijker. Wil je goede service leveren of de concurrent aftroeven, dan zul je slimmer moeten zijn, en zorgen dat je de belangrijkste informatie (snel) tot je beschik- king hebt. Met name de elektronische informatieverwerking neemt een belangrijke plaats in; denk hierbij aan reserveringssystemen voor vliegtuigen en aan nieuwsnetwerken. Dit zijn grote, vaak wereldwijde netwerken waar honderden of zelfs duizenden computers aan gekoppeld zijn. Deze computers verzenden, ontvangen en presenteren boodschappen. Om het informatieverkeer over zo'n netwerk ordelijk te laten verlopen zijn er regels nodig: het schaarse produkt (toegang tot de diensten van het netwerk) moet `eerlijk' verdeeld worden. Het mag bijvoorbeeld niet mogelijk zijn dat dezelfde vliegtuigstoel gelijktijdig vanuit twee plaatsen wordt gereserveerd. Maar er mag ook geen \na u { na u" situatie ontstaan waarbij twee klanten van het netwerk eindeloos op elkaar blijven wachten. Verder zal er gezorgd moeten worden voor adequate oplossingen wanneer er problemen optreden in het netwerk, zoals het uitvallen van een verbinding. Daarom zal een netwerk, ongeacht de grootte, moeten werken volgens regels welke zijn vastgelegd in computerprogramma's: zogenaamde netwerkprotocollen. Omdat we te maken hebben met meerdere computers in een netwerk, zijn deze protocollen verdeeld (gedistribueerd) over de verschillende compu- ters, en spreken we van gedistribueerde protocollen. De doelstelling van het onderzoek dat in dit proefschrift wordt gepresenteerd is het ontwikkelen van een rekenmethode (calculus) om dit soort gedistribueerde protocollen op elegante en correcte wijze te kunnen ontwerpen. Waarom een formele rekenmethode? Het menselijk verstand is in het algemeen niet in staat om de complexiteit die ontstaat bij het ontwerpen van programma's te overzien. Daarom moeten er hulpmiddelen geleverd worden om programma's te kunnen ontwerpen; in het bijzonder als het gedistribueerde programma's betreft. Deze hulpmiddelen kunnen de vorm krijgen van een verzameling rekenregels om uit een formele beschrijving (specicatie) een programma af te kunnen leiden. Een complete verzameling van rekenregels en heuristieken vormt de uiteindelijke calculus. Een groot probleem is dat voor het berekenen van een gedistribueerd programma vaak rekening moet worden gehouden met veel verschillende situaties. De reden is simpel: een groot systeem van computers die met elkaar willen communiceren kent vele verschillende toestanden. Om het hoofd te kunnen bieden aan al die situaties is het belangrijk dat irrelevante details van het systeem achterwege gelaten worden. Daarom willen we niet redeneren over het ontvangen of verzenden van een boodschap, zelfs niet over het ontvangen of verzenden van een complete stroom boodschappen, maar over het complete gedrag van een programma in elke willekeurige omgeving. De omgeving wordt bepaald door de andere programma's in het netwerk. Vaak kan het gedrag van een programma vastgelegd worden in een verzameling rekenregels door de interactie met andere (bekende) programma's te geven. Een simpel voorbeeld daarvan is het karakteriseren van het programma I dat iedere boodschap a binnengekomen op tijdstip t meteen weer doorstuurt: Voor alle boodschappen a en tijdstippen t: I:at =at Hier worden dus afzonderlijke boodschappen genoemd. Beter zou het zijn (maar nog niet goed genoeg) om I te karakteriseren door te zeggen dat iedere complete invoerstroom f van boodschappen ook de uitvoer is: Voor alle stromen van boodschappen f: I:f =f In dit proefschrift wordt I vastgelegd door het gedrag te geven in iedere willekeurige om- geving: Voor alle programma's P: I P = P en P = P I Deze laatste formulering geeft aan dat I het gedrag van ieder ander willekeurig programma P ongemoeid laat. Omdat het gedrag van een groot computernetwerk niet volledig te controleren is (bijvoor- beeld onvoorspelbaar menselijk gedrag kan een grote rol spelen), moeten we in de calculus rekening kunnen houden met onbepaald gedrag (non-determinisme). Een van de belang- rijkste onbepaalde factoren is de tijdsduur: vaak is wel duidelijk welke boodschap verstuurd is over een verbinding, maar is het onbepaald hoe lang die boodschap er over zal doen. Een andere onbepaalde factor is dat op de meest willekeurige momenten plotseling een fout ergens in het systeem kan optreden. Om over dit soort onbepaald gedrag te kunnen rede- neren, is de calculus in dit proefschrift gebouwd op een zogenaamde relationele calculus. Deze relationele calculus kan goed overweg met non-determinisme. Kort overzicht Het proefschrift bestaat uit vijf delen. Elk deel breidt de calculus verder uit. Tot slot wordt de calculus gebruikt voor het ontwerpen van een simpel, gedistribueerd protocol voor het correct verzenden door een zender van boodschappen over onbetrouwbare verbindingen naar een ontvanger. In Deel I wordt eerst aangegeven hoe we gedistribueerde systemen willen beschrijven als invoer/uitvoer-relaties. Vervolgens wordt de relationele calculus gepresenteerd. In deze relationele calculus wordt, ter verkrijging van een relationele calculus voor het ontwer- pen van gedistribueerde systemen, meer structuur aangebracht door de constructie van de feedback loop te deni?eren. Er wordt aangetoond dat feedback een aantal `ongezonde' eigenschappen heeft. Een groot deel van het proefschrift (in het bijzonder Deel III) zal zich wijden aan het oplossen van deze problemen. Tenslotte wordt het model van de relationele calculus, waarin veel voorbereidende berekeningen zullen worden uitgevoerd, vastgelegd. De elementen van dit model, de zogenaamde chronicles, beschrijven complete stromen boodschappen. Deel II introduceert twee constructies om chronicles te kunnen manipuleren. De functie postcompose kan worden gebruikt om functies die werken op afzonderlijke boodschappen om te zetten in processen die werken op complete stromen van boodschappen. Zo kunnen we met de optelling + voor natuurlijke getallen een eenvoudig proces beschrijven dat een complete stroom van paren van natuurlijke getallen omzet in de stroom van sommen van de paren. Enkele basisprocessen worden met behulp van postcompose gedenieerd en onderzocht. De functie precompose kan veranderingen aanbrengen in de tijd. Omdat we in de calculus niet willen redeneren over exacte tijd of tijdsduur, is de functie precompose geen onderdeel van de uiteindelijke calculus, maar slechts een hulpmiddel om bijvoorbeeld een (onbepaalde) vertraging te beschrijven. In Deel I zijn verschillende ongezonde eigenschappen van met name de feedback gesig- naleerd. Deel III presenteert daarom een nieuwe eigenschap, genaamd causaliteit. Een proces dat deze eigenschap heeft is gezond in de zin dat er geen boodschappen (van een bepaald type) geweigerd kunnen worden, en dat huidige uitvoer niet afhangt van huidige of toekomstige invoer. Dit zijn realistische eigenschappen die niet noodzakelijk gelden voor ieder proces dat uitgedrukt kan worden in de calculus. Causale processen worden uitvoerig onderzocht, met name in combinatie met feedback. Het blijkt dat causale processen in een feedback loop weer een causaal proces opleveren. Deel IV denieert en onderzoekt, in het model, drie basisprocessen die verschuivingen kunnen aanbrengen in de tijd. Twee processen drukken de vertraging van een verbinding uit. Een derde proces heeft de mogelijkheid om de doorvoer van boodschappen af te kap- pen. Daarna volgen denities van nieuwe processen in termen van de drie basisprocessen. Het belangrijkste nieuwe proces is de buer, welke gebruikt kan worden voor asynchrone communicatie. Tenslotte wordt al het werk van de eerste vier delen samengebracht in de a eiding van een eenvoudig communicatieprotocol. Daartoe wordt in Deel V eerst getoond hoe de alge- mene theorie kan worden ge?nstantieerd tot een meer gespecialiseerde theorie. De daarop volgende a eiding van het communicatieprotocol kenmerkt zich door het abstracte niveau waarop de verschillende bewijsverplichtingen worden afgehandeld: er wordt slechts gerede- neerd over processen, niet over (stromen van) boodschappen

    How to generalise demonic composition

    Get PDF
    Demonic composition is defined on the set of binary relations over the non-empty set X, , and is a variant of standard or “angelic” composition. It arises naturally in the setting of the theory of non-deterministic computer programs, and shares many of the nice features of ordinary composition (it is associative, and generalises composition of functions). When equipped with the operations of demonic composition and domain, is a left restriction semigroup (like , the semigroup of partial functions on X), whereas usual composition and domain give a unary semigroup satisfying weaker laws. By viewing under a restricted version of its usual composition and domain as a constellation (a kind of “one-sided” category), we show how this demonic left restriction semigroup structure arises on , placing it in a more general context. The construction applies to any unary semigroup with a “domain-like” operation satisfying certain minimal conditions which we identify. In particular it is shown that using the construction, any Baer ∗-semigroup S can be given a left restriction semigroup structure which is even an inverse semigroup if S is ∗-regular. It follows that the semigroup of × matrices over the real or complex numbers is an inverse semigroup with respect to a modified notion of product that almost always agrees with the usual matrix product, and in which inverse is pseudoinverse (Moore–Penrose inverse)
    • 

    corecore