32 research outputs found

    The Formal Semantics of Core ABS and ABS-NET

    Get PDF
    ABS is a language and framework for modelling distributed object-oriented systems, developed in the EU FP7 HATS project. Core ABS formalizes the key parts of ABS, including the syntax, type system, and an operational semantics in the style of rewriting logic. ABS-NET is a novel operational semantics for Core ABS programs, developed as a part of work on decentralized runtime adaptation of distributed objects. ABS-NET describes program execution on top of a network of nodes connected point-to-point with asynchronous message passing links. This report describes the syntax and semantics of Core ABS and ABS-NET, and is meant to serve as a reference, while highlighting the differences between the reference semantics of ABS programs and the ABS-NET semantics

    Lessons for Interactive Theorem Proving Researchers from a Survey of Coq Users

    Get PDF
    The Coq Community Survey 2022 was an online public survey of users of the Coq proof assistant conducted during February 2022. Broadly, the survey asked about use of Coq features, user interfaces, libraries, plugins, and tools, views on renaming Coq and Coq improvements, and also demographic data such as education and experience with Coq and other proof assistants and programming languages. The survey received 466 submitted responses, making it the largest survey of users of an interactive theorem prover (ITP) so far. We present the design of the survey, a summary of key results, and analysis of answers relevant to ITP technology development and usage. In particular, we analyze user characteristics associated with adoption of tools and libraries and make comparisons to adjacent software communities. Notably, we find that experience has significant impact on Coq user behavior, including on usage of tools, libraries, and integrated development environments

    Types for Progress in Actor Programs

    Get PDF
    Properties in the actor model can be described in terms of the message-passing behavior of actors. In this paper, we address the problem of using a type system to capture liveness properties of actor programs. Specifically, we define a simple actor language in which demands for certain types of messages may be generated during execution, in a manner specified by the programmer. For example, we may want to require that each request to an actor eventually results in a reply. The difficulty lies in that such requests can be generated dynamically, alongside the associated requirements for replies. Such replies might be sent in response to intermediate messages that never arrive, but the property may also not hold for more trivial reasons; for instance, when the code of potential senders of the reply omit the required sending command in some branches of a conditional statement. We show that, for a restricted class of actor programs, a system that tracks typestates can statically guarantee that such dynamically generated requirements will eventually be satisfied.Ope

    Reliably Reproducing Machine-Checked Proofs with the Coq Platform

    Get PDF
    International audienceThe Coq Platform is a continuously developed distribution of the Coq proof assistant together with commonly used libraries, plugins, and external tools useful in Coq-based formal verification projects. The Coq Platform enables reproducing and extending Coq artifacts in research, education, and industry, e.g., formalized mathematics and verified software systems. In this paper, we describe the background and motivation for the Platform, and outline its organization and development process. We also compare the Coq Platform to similar distributions and processes in the proof assistant community, such as for Isabelle and Lean, and in the wider open source software community

    Verification of Casper in the Coq Proof Assistant

    Get PDF
    This report describes our effort to model and verify the Casper blockchain finality system in the Coq proof assistant. We outline the salient details on blockchain systems using Casper, describe previous verification efforts we used as a starting point, and give an overview of the formal definitions and properties proved. The Coq source files are available at: https://github.com/runtimeverification/casper-proofsOpe
    corecore