- Sponsor:
- sigplan
No abstract available.
Proceeding Downloads
Matching logic: the foundation of the K framework (invited talk)
The K framework (kframework.org) is an effort in realizing the ideal language framework, where programming languages must have formal semantics and all language tools are automatically generated from the formal semantics. Until recently, K has been ...
Proof assistants at the hardware-software interface (invited talk)
Some of the earliest applications of proof assistants were to correctness of digital hardware designs, but the subject doesn’t come up too frequently today at venues like CPP. I will try to make the case that proof assistants are a crucial tool for ...
A verified packrat parser interpreter for parsing expression grammars
Parsing expression grammars (PEGs) offer a natural opportunity for building verified parser interpreters based on higher-order parsing combinators. PEGs are expressive, unambiguous, and efficient to parse in a top-down recursive descent style. We use ...
Proof pearl: Braun trees
Braun trees are functional data structures for implementing extensible arrays and priority queues (and sorting functions based on the latter) efficiently. Some well-known functions on Braun trees have not yet been verified, including especially Okasaki’...
FreeSpec: specifying, verifying, and executing impure computations in Coq
FreeSpec is a framework for the Coq theorem prover which allows for specifying and verifying complex systems as hierarchies of components verified both in isolation and in composition. While FreeSpec was originally introduced for reasoning about ...
Verifying x86 instruction implementations
Verification of modern microprocessors is a complex task that requires a substantial allocation of resources. Despite significant progress in formal verification, the goal of complete verification of an industrial design has not been achieved. In this ...
Frying the egg, roasting the chicken: unit deletions in DRAT proofs
The clausal proof format DRAT is the standard de facto to certify SAT solvers' unsatisfiability results. DRAT proofs act as logs of clause inferences and clause deletions in the solver. The non-monotonic nature of the proof system makes deletions ...
An equational theory for weak bisimulation via generalized parameterized coinduction
Coinductive reasoning about infinitary structures such as streams is widely applicable. However, practical frameworks for developing coinductive proofs and finding reasoning principles that help structure such proofs remain a challenge, especially in ...
Exploration of neural machine translation in autoformalization of mathematics in Mizar
In this paper we share several experiments trying to automatically translate informal mathematics into formal mathematics. In our context informal mathematics refers to human-written mathematical sentences in the LaTeX format; and formal mathematics ...
REPLica: REPL instrumentation for Coq analysis
Proof engineering tools make it easier to develop and maintain large systems verified using interactive theorem provers. Developing useful proof engineering tools hinges on understanding the development processes of proof engineers. This paper breaks ...
Verified programming of Turing machines in Coq
We present a framework for the verified programming of multi-tape Turing machines in Coq. Improving on prior work by Asperti and Ricciotti in Matita, we implement multiple layers of abstraction. The highest layer allows a user to implement nontrivial ...
A functional proof pearl: inverting the Ackermann hierarchy
We implement in Gallina a hierarchy of functions that calculate the upper inverses to the hyperoperation/Ackermann hierarchy. Our functions run in Θ(b) for inputs expressed in unary, and in O(b2) for inputs expressed in binary (where b = bitlength). We ...
Undecidability of higher-order unification formalised in Coq
We formalise undecidability results concerning higher-order unification in the simply-typed λ-calculus with β-conversion in Coq. We prove the undecidability of general higher-order unification by reduction from Hilbert’s tenth problem, the solvability ...
Cubical synthetic homotopy theory
Homotopy type theory is an extension of type theory that enables synthetic reasoning about spaces and homotopy theory. This has led to elegant computer formalizations of multiple classical results from homotopy theory. However, many proofs are still ...
Three equivalent ordinal notation systems in cubical Agda
We present three ordinal notation systems representing ordinals below ε0 in type theory, using recent type-theoretical innovations such as mutual inductive-inductive definitions and higher inductive types. We show how ordinal arithmetic can be developed ...
Coq à la carte: a practical approach to modular syntax with binders
The mechanisation of the meta-theory of programming languages is still considered hard and requires considerable effort. When formalising properties of the extension of a language, one hence wants to reuse definitions and proofs. But type-theoretic ...
A mechanized formalization of GraphQL
GraphQL is a novel language for specifying and querying web APIs, allowing clients to flexibly and efficiently retrieve data of interest. The GraphQL language specification is unfortunately only available in prose, making it hard to develop robust ...
ConCert: a smart contract certification framework in Coq
We present a new way of embedding functional languages into the Coq proof assistant by using meta-programming. This allows us to develop the meta-theory of the language using the deep embedding and provides a convenient way for reasoning about concrete ...
Formalising oblivious transfer in the semi-honest and malicious model in CryptHOL
Multi-Party Computation (MPC) allows multiple parties to compute a function together while keeping their inputs private. Large scale implementations of MPC protocols are becoming practical thus it is important to have strong guarantees for the whole ...
Verified security of BLT signature scheme
The majority of real-world applications of digital signatures use timestamping to ensure non-repudiation in face of possible key revocations. This observation led Buldas, Laanoja, and Truu to a server-assisted digital signature scheme built around ...
Formalizing determinacy of concurrent revisions
Concurrent revisions is a concurrency control model designed to guarantee determinacy, meaning that the outcomes of programs are uniquely determined. This paper describes an Isabelle/HOL formalization of the model’s operational semantics and proof of ...
Formalizing 𝜋-calculus in guarded cubical Agda
Dependent type theories with guarded recursion have shown themselves suitable for the development of denotational semantics of programming languages. In particular Ticked Cubical Type Theory (TCTT) has been used to show that for guarded labelled ...
Intrinsically-typed definitional interpreters for linear, session-typed languages
An intrinsically-typed definitional interpreter is a concise specification of dynamic semantics, that is executable and type safe by construction. Unfortunately, scaling intrinsically-typed definitional interpreters to more complicated object languages ...
Formalising perfectoid spaces
Perfectoid spaces are sophisticated objects in arithmetic geometry introduced by Peter Scholze in 2012. We formalised enough definitions and theorems in topology, algebra and geometry to define perfectoid spaces in the Lean theorem prover. This ...
A constructive formalization of the weak perfect graph theorem
The Perfect Graph Theorems are important results in graph theory describing the relationship between clique number ω(G) and chromatic number χ(G) of a graph G. A graph G is called perfect if χ(H)=ω(H) for every induced subgraph H of G. The Strong ...
Completeness of an axiomatization of graph isomorphism via graph rewriting in Coq
The labeled multigraphs of treewidth at most two can be described using a simple term language over which isomorphism of the denoted graphs can be finitely axiomatized. We formally verify soundness and completeness of such an axiomatization using Coq ...
The Poincaré-Bendixson theorem in Isabelle/HOL
The Poincaré-Bendixson theorem is a classical result in the study of (continuous) dynamical systems. Colloquially, it restricts the possible behaviors of planar dynamical systems: such systems cannot be chaotic. In practice, it is a useful tool for ...
A formal proof of the independence of the continuum hypothesis
We describe a formal proof of the independence of the continuum hypothesis (CH) in the Lean theorem prover. We use Boolean-valued models to give forcing arguments for both directions, using Cohen forcing for the consistency of ¬ CH and a σ-closed ...
The lean mathematical library
This paper describes mathlib, a community-driven effort to build a unified library of mathematics formalized in the Lean proof assistant. Among proof assistant libraries, it is distinguished by its dependently typed foundations, focus on classical ...
Cited By
- Kaufmann D, Fleury M, Biere A and Kauers M (2024). Practical algebraic calculus and Nullstellensatz with the checkers Pacheck and Pastèque and Nuss-Checker, Formal Methods in System Design, 64:1, (73-107), Online publication date: 1-Dec-2024.
-
Bernstein D (2024). Understanding binary-Goppa decoding, IACR Communications in Cryptology, 10.62056/angy4fe-3
- Yang K, Swope A, Gu A, Chalamala R, Song P, Yu S, Godil S, Prenger R and Anandkumar A LeanDojo Proceedings of the 37th International Conference on Neural Information Processing Systems, (21573-21612)
-
Galiautdinov R (2023). Securing the Future of Artificial Intelligence The Use of Artificial Intelligence in Digital Marketing, 10.4018/978-1-6684-9324-3.ch008, (188-207)
-
Gunther E, Pagano M and Sánchez Terraf P (2020). Formalization of Forcing in Isabelle/ZF Automated Reasoning, 10.1007/978-3-030-51054-1_13, (221-235),
Index Terms
- Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs
Recommendations
Acceptance Rates
Year | Submitted | Accepted | Rate |
---|---|---|---|
CPP '15 | 26 | 18 | 69% |
Overall | 26 | 18 | 69% |