skip to main content
10.1145/3497775acmconferencesBook PagePublication PagespoplConference Proceedingsconference-collections
CPP 2022: Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs
ACM2022 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
CPP '22: 11th ACM SIGPLAN International Conference on Certified Programs and Proofs Philadelphia PA USA January 17 - 18, 2022
ISBN:
978-1-4503-9182-5
Published:
11 January 2022
Sponsors:
Next Conference
January 19 - 25, 2025
Denver , CO , USA
Bibliometrics
Skip Abstract Section
Abstract

Welcome to the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs (CPP 2022). CPP covers the practical and theoretical topics in all areas that consider formal verification and certification as an essential paradigm for their work. CPP spans areas of computer science, mathematics, logic, and education. CPP 2022 will be held on 17-18 January 2022 in Philadelphia, Pennsylvania, United States. The conference is co-located with POPL 2022, and is sponsored by ACM SIGPLAN in cooperation with ACM SIGLOG.

Skip Table Of Content Section
SESSION: Invited Talks
invited-talk
The sel4 verification: the art and craft of proof and the reality of commercial support (invited talk)

The formal verification of the seL4 microkernel started as a research project in 2004 and has achieved commercial scale now, in the number of properties proven, the supported features and platforms, the adoption and deployment by industry and government ...

research-article
Open Access
Coq’s vibrant ecosystem for verification engineering (invited talk)

Program verification in the large is not only a matter of mechanizing a program logic to handle the semantics of your programming language. You must reason in the mathematics of your application domain--and there are many application domains, each with ...

invited-talk
Structural embeddings revisited (invited talk)

A semantic embedding is a logical encoding of a formal language, namely the object language, into the specification language of a logical framework. In their seminal paper “Experience with embedding hardware description languages in HOL”, Boulton et al. ...

SESSION: Program Verification
research-article
Overcoming restraint: composing verification of foreign functions with cogent

Cogent is a restricted functional language designed to reduce the cost of developing verified systems code. Because of its sometimes-onerous restrictions, such as the lack of support for recursion and its strict uniqueness type system, Cogent provides ...

research-article
Open Access
Verbatim++: verified, optimized, and semantically rich lexing with derivatives

Lexers and parsers are attractive targets for attackers because they often sit at the boundary between a software system's internals and the outside world. Formally verified lexers can reduce the attack surface of these systems, thus making them more ...

research-article
Formally verified superblock scheduling

On in-order processors, without dynamic instruction scheduling, program running times may be significantly reduced by compile-time instruction scheduling. We present here the first effective certified instruction scheduler that operates over superblocks ...

SESSION: Semantics
research-article
Certified abstract machines for skeletal semantics

Skeletal semantics is a framework to describe semantics of programming languages. We propose an automatic generation of a certified OCaml interpreter for any language written in skeletal semantics. To this end, we introduce two new interpretations, i.e.,...

research-article
A compositional proof framework for FRETish requirements

Structured natural languages provide a trade space between ambiguous natural languages that make up most written requirements, and mathematical formal specifications such as Linear Temporal Logic. FRETish is a structured natural language for the ...

SESSION: Verified Data Structures
research-article
Specification and verification of a transient stack

A transient data structure is a package of an ephemeral data structure, a persistent data structure, and fast conversions between them. We describe the specification and proof of a transient stack and its iterators. This data structure is a scaled-down ...

research-article
Open Access
Mechanized verification of a fine-grained concurrent queue from meta’s folly library

We present the first formal specification and verification of the fine-grained concurrent multi-producer-multi-consumer queue algorithm from Meta’s C++ library Folly of core infrastructure components. The queue is highly optimized, practical, and used ...

research-article
Open Access
Applying formal verification to microkernel IPC at meta

We use Iris, an implementation of concurrent separation logic in the Coq proof assistant, to verify two queue data structures used for inter-process communication in an operating system under development. Our motivations are twofold. First, we wish to ...

SESSION: Distributed Systems and Concurrency
research-article
Public Access
Forward build systems, formally

Build systems are a fundamental part of software construction, but their correctness has received comparatively little attention, relative to more prominent parts of the toolchain. In this paper, we address the correctness of forward build systems, ...

research-article
Formal verification of a distributed dynamic reconfiguration protocol

We present a formal, machine checked TLA+ safety proof of MongoRaftReconfig, a distributed dynamic reconfiguration protocol. MongoRaftReconfig was designed for and implemented in MongoDB, a distributed database whose replication protocol is derived from ...

SESSION: Blockchains and Cryptography
research-article
Open Access
A verified algebraic representation of cairo program execution

Cryptographic interactive proof systems provide an efficient and scalable means of verifying the results of computation on blockchain. A prover constructs a proof, off-chain, that the execution of a program on a given input terminates with a certain ...

research-article
Open Access
Reflection, rewinding, and coin-toss in EasyCrypt

In this paper we derive a suite of lemmas which allows users to internally reflect EasyCrypt programs into distributions which correspond to their denotational semantics (probabilistic reflection). Based on this we develop techniques for reasoning about ...

SESSION: Proof Infrastructure
research-article
An extension of the framework types-to-sets for Isabelle/HOL

In their article titled From Types to Sets by Local Type Definitions in Higher-Order Logic and published in the proceedings of the conference Interactive Theorem Proving in 2016, Ondřej Kunčar and Andrei Popescu propose an extension of the logic ...

research-article
A drag-and-drop proof tactic

We explore the features of a user interface where formal proofs can be built through gestural actions. In particular, we show how proof construction steps can be associated to drag-and-drop actions. We argue that this can provide quick and intuitive ...

SESSION: Rewriting and Automated Reasoning
research-article
Open Access
CertiStr: a certified string solver

Theories over strings are among the most heavily researched logical theories in the SMT community in the past decade, owing to the error-prone nature of string manipulations, which often leads to security vulnerabilities (e.g. cross-site scripting and ...

research-article
Open Access
Safe, fast, concurrent proof checking for the lambda-pi calculus modulo rewriting

Several proof assistants, such as Isabelle or Coq, can concurrently check multiple proofs. In contrast, the vast majority of today's small proof checkers either does not support concurrency at all or only limited forms thereof, restricting the ...

SESSION: Formalized Mathematics
research-article
Formalising lie algebras

Lie algebras are an important class of algebras which arise throughout mathematics and physics. We report on the formalisation of Lie algebras in Lean's Mathlib library. Although basic knowledge of Lie theory will benefit the reader, none is assumed; ...

research-article
Open Access
Windmills of the minds: an algorithm for fermat’s two squares theorem

The two squares theorem of Fermat is a gem in number theory, with a spectacular one-sentence "proof from the Book". Here is a formalisation of this proof, with an interpretation using windmill patterns. The theory behind involves involutions on a finite ...

research-article
Public Access
A machine-checked direct proof of the Steiner-lehmus theorem

A direct proof of the Steiner-Lehmus theorem has eluded geometers for over 170 years. The challenge has been that a proof is only considered direct if it does not rely on reductio ad absurdum. Thus, any proof that claims to be direct must show, going ...

SESSION: Formalization of Logic
research-article
Open Access
Undecidability, incompleteness, and completeness of second-order logic in Coq

We mechanise central metatheoretic results about second-order logic (SOL) using the Coq proof assistant. Concretely, we consider undecidability via many-one reduction from Diophantine equations (Hilbert's tenth problem), incompleteness regarding full ...

research-article
Open Access
Semantic cut elimination for the logic of bunched implications, formalized in Coq

The logic of bunched implications (BI) is a substructural logic that forms the backbone of separation logic, the much studied logic for reasoning about heap-manipulating programs. Although the proof theory and metatheory of BI are mathematically ...

SESSION: Category Theory and HoTT
research-article
Open Access
Implementing a category-theoretic framework for typed abstract syntax

In previous work ("From signatures to monads in UniMath"),we described a category-theoretic construction of abstract syntax from a signature, mechanized in the UniMath library based on the Coq proof assistant.

In the present work, we describe what was ...

research-article
Public Access
(Deep) induction rules for GADTs

Deep data types are those that are constructed from other data types, including, possibly, themselves. In this case, they are said to be truly nested. Deep induction is an extension of structural induction that traverses all of the structure in a deep ...

research-article
Open Access
On homotopy of walks and spherical maps in homotopy type theory

We work with combinatorial maps to represent graph embeddings into surfaces up to isotopy. The surface in which the graph is embedded is left implicit in this approach. The constructions herein are proof-relevant and stated with a subset of the language ...

Contributors
  • The University of Sheffield
  • University of Pennsylvania

Recommendations

Acceptance Rates

Overall Acceptance Rate18of26submissions,69%
YearSubmittedAcceptedRate
CPP '15261869%
Overall261869%