71 research outputs found
Foundational Extensible Corecursion
This paper presents a formalized framework for defining corecursive functions
safely in a total setting, based on corecursion up-to and relational
parametricity. The end product is a general corecursor that allows corecursive
(and even recursive) calls under well-behaved operations, including
constructors. Corecursive functions that are well behaved can be registered as
such, thereby increasing the corecursor's expressiveness. The metatheory is
formalized in the Isabelle proof assistant and forms the core of a prototype
tool. The corecursor is derived from first principles, without requiring new
axioms or extensions of the logic
Generic Authenticated Data Structures, Formally
Authenticated data structures are a technique for outsourcing data storage and maintenance to an untrusted server. The server is required to produce an efficiently checkable and cryptographically secure proof that it carried out precisely the requested computation. Recently, Miller et al. [https://doi.org/10.1145/2535838.2535851] demonstrated how to support a wide range of such data structures by integrating an authentication construct as a first class citizen in a functional programming language. In this paper, we put this work to the test of formalization in the Isabelle proof assistant. With Isabelle\u27s help, we uncover and repair several mistakes and modify the small-step semantics to perform call-by-value evaluation rather than requiring terms to be in administrative normal form
Foundational, compositional (co)datatypes for higher-order logic: category theory applied to theorem proving
Interactive theorem provers based on higher-order logic (HOL) traditionally follow the definitional approach, reducing high-level specifications to logical primitives. This also applies to the support for datatype definitions. However, the internal datatype construction used in HOL4, HOL Light, and Isabelle/HOL is fundamentally noncompositional, limiting its efficiency and flexibility, and it does not cater for codatatypes. We present a fully modular framework for constructing (co)datatypes in HOL, with support for mixed mutual and nested (co)recursion. Mixed (co)recursion enables type definitions involving both datatypes and codatatypes, such as the type of finitely branching trees of possibly infinite depth. Our framework draws heavily from category theory. The key notion is that of a bounded natural functor—an enriched type constructor satisfying specific properties preserved by interesting categorical operations. Our ideas are implemented as a definitional package in Isabelle, addressing a frequent request from users
From Nondeterministic to Multi-Head Deterministic Finite-State Transducers
Every nondeterministic finite-state automaton is equivalent to a deterministic finite-state automaton. This result does not extend to finite-state transducers - finite-state automata equipped with a one-way output tape. There is a strict hierarchy of functions accepted by one-way deterministic finite-state transducers (1DFTs), one-way nondeterministic finite-state transducers (1NFTs), and two-way nondeterministic finite-state transducers (2NFTs), whereas the two-way deterministic finite-state transducers (2DFTs) accept the same family of functions as their nondeterministic counterparts (2NFTs).
We define multi-head one-way deterministic finite-state transducers (mh-1DFTs) as a natural extension of 1DFTs. These transducers have multiple one-way reading heads that move asynchronously over the input word. Our main result is that mh-1DFTs can deterministically express any function defined by a one-way nondeterministic finite-state transducer. Of independent interest, we formulate the all-suffix regular matching problem, which is the problem of deciding for each suffix of an input word whether it belongs to a regular language. As part of our proof, we show that an mh-1DFT can solve all-suffix regular matching, which has applications, e.g., in runtime verification
Quotients of Bounded Natural Functors
The functorial structure of type constructors is the foundation for many
definition and proof principles in higher-order logic (HOL). For example,
inductive and coinductive datatypes can be built modularly from bounded natural
functors (BNFs), a class of well-behaved type constructors. Composition,
fixpoints, and, under certain conditions, subtypes are known to preserve the
BNF structure. In this article, we tackle the preservation question for
quotients, the last important principle for introducing new types in HOL. We
identify sufficient conditions under which a quotient inherits the BNF
structure from its underlying type. Surprisingly, lifting the structure in the
obvious manner fails for some quotients, a problem that also affects the
quotients of polynomial functors used in the Lean proof assistant. We provide a
strictly more general lifting scheme that supports such problematic quotients.
We extend the Isabelle/HOL proof assistant with a command that automates the
registration of a quotient type as a BNF, reducing the proof burden on the user
from the full set of BNF axioms to our inheritance conditions. We demonstrate
the command's usefulness through several case studies.Comment: Extended version of homonymous IJCAR 2020 pape
Verified decision procedures for MSO on words based on derivatives of regular expressions
Monadic second-order logic on finite words is a decidable yet expressive logic into which many decision problems can be encoded. Since MSO formulas correspond to regular languages, equivalence of MSO formulas can be reduced to the equivalence of some regular structures (e.g., automata). This paper presents a verified functional decision procedure for MSO formulas that is not based on automata but on regular expressions. Functional languages are ideally suited for this task: regular expressions are data types and functions on them are defined by pattern matching and recursion and are verified by structural induction. Decision procedures for regular expression equivalence have been formalized before, usually based on Brzozowski derivatives. Yet, for a straightforward embedding of MSO formulas into regular expressions, an extension of regular expressions with a projection operation is required. We prove total correctness and completeness of an equivalence checker for regular expressions extended in that way. We also define a language-preserving translation of formulas into regular expressions with respect to two different semantics of MSO. Our results have been formalized and verified in the theorem prover Isabelle. Using Isabelle's code generation facility, this yields purely functional, formally verified programs that decide equivalence of MSO formula
Efficient Evaluation of Arbitrary Relational Calculus Queries
The relational calculus (RC) is a concise, declarative query language.
However, existing RC query evaluation approaches are inefficient and often
deviate from established algorithms based on finite tables used in database
management systems. We devise a new translation of an arbitrary RC query into
two safe-range queries, for which the finiteness of the query's evaluation
result is guaranteed. Assuming an infinite domain, the two queries have the
following meaning: The first is closed and characterizes the original query's
relative safety, i.e., whether given a fixed database, the original query
evaluates to a finite relation. The second safe-range query is equivalent to
the original query, if the latter is relatively safe. We compose our
translation with other, more standard ones to ultimately obtain two SQL
queries. This allows us to use standard database management systems to evaluate
arbitrary RC queries. We show that our translation improves the time complexity
over existing approaches, which we also empirically confirm in both realistic
and synthetic experiments.Comment: minor revisio
Foundational nonuniform (co)datatypes for higher-order logic
Nonuniform (or “nested” or “heterogeneous”) datatypes are recursively defined types in which the type arguments vary recursively. They arise in the implementation of finger trees and other efficient functional data structures. We show how to reduce a large class of nonuniform datatypes and codatatypes to uniform types in higher-order logic. We programmed this reduction in the Isabelle/HOL proof assistant, thereby enriching its specification language. Moreover, we derive (co)recusion and (co)induction principles based on a weak variant of parametricity
- …