10 research outputs found
Touring the MetaCoq Project (Invited Paper)
International audienc
Touring the MetaCoq Project (Invited Paper)
International audienc
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 the rich type system of the PVS specification language
and verification system to formalize the metatheory of PEGs and define a
reference implementation of a recursive parser interpreter for PEGs. In order
to ensure termination of parsing, we define a notion of a well-formed grammar.
Rather than relying on an inductive definition of parsing, we use abstract
syntax trees that represent the computational trace of the parser to provide an
effective proof certificate for correct parsing and ensure that parsing
properties including soundness and completeness are maintained. The correctness
properties are embedded in the types of the operations so that the proofs can
be easily constructed from local proof obligations. Building on the reference
parser interpreter, we define a packrat parser interpreter as well as an
extension that is capable of semantic interpretation. Both these parser
interpreters are proved equivalent to the reference one. All of the parsers are
executable. The proofs are formalized in mathematical terms so that similar
parser interpreters can be defined in any specification language with a type
system similar to PVS.Comment: 15 pages, 15 figures, Certified Proofs and Program
Constructive Many-one Reduction from the Halting Problem to Semi-unification (Extended Version)
Semi-unification is the combination of first-order unification and
first-order matching. The undecidability of semi-unification has been proven by
Kfoury, Tiuryn, and Urzyczyn in the 1990s by Turing reduction from Turing
machine immortality (existence of a diverging configuration). The particular
Turing reduction is intricate, uses non-computational principles, and involves
various intermediate models of computation. The present work gives a
constructive many-one reduction from the Turing machine halting problem to
semi-unification. This establishes RE-completeness of semi-unification under
many-one reductions. Computability of the reduction function, constructivity of
the argument, and correctness of the argument is witnessed by an axiom-free
mechanization in the Coq proof assistant. Arguably, this serves as
comprehensive, precise, and surveyable evidence for the result at hand. The
mechanization is incorporated into the existing, well-maintained Coq library of
undecidability proofs. Notably, a variant of Hooper's argument for the
undecidability of Turing machine immortality is part of the mechanization
Local Reasoning for Global Graph Properties
Separation logics are widely used for verifying programs that manipulate
complex heap-based data structures. These logics build on so-called separation
algebras, which allow expressing properties of heap regions such that
modifications to a region do not invalidate properties stated about the
remainder of the heap. This concept is key to enabling modular reasoning and
also extends to concurrency. While heaps are naturally related to mathematical
graphs, many ubiquitous graph properties are non-local in character, such as
reachability between nodes, path lengths, acyclicity and other structural
invariants, as well as data invariants which combine with these notions.
Reasoning modularly about such graph properties remains notoriously difficult,
since a local modification can have side-effects on a global property that
cannot be easily confined to a small region.
In this paper, we address the question: What separation algebra can be used
to avoid proof arguments reverting back to tedious global reasoning in such
cases? To this end, we consider a general class of global graph properties
expressed as fixpoints of algebraic equations over graphs. We present
mathematical foundations for reasoning about this class of properties, imposing
minimal requirements on the underlying theory that allow us to define a
suitable separation algebra. Building on this theory we develop a general proof
technique for modular reasoning about global graph properties over program
heaps, in a way which can be integrated with existing separation logics. To
demonstrate our approach, we present local proofs for two challenging examples:
a priority inheritance protocol and the non-blocking concurrent Harris list
Automated Deduction – CADE 28
This open access book constitutes the proceeding of the 28th International Conference on Automated Deduction, CADE 28, held virtually in July 2021. The 29 full papers and 7 system descriptions presented together with 2 invited papers were carefully reviewed and selected from 76 submissions. CADE is the major forum for the presentation of research in all aspects of automated deduction, including foundations, applications, implementations, and practical experience. The papers are organized in the following topics: Logical foundations; theory and principles; implementation and application; ATP and AI; and system descriptions