319 research outputs found
A mechanized proof of loop freedom of the (untimed) AODV routing protocol
The Ad hoc On-demand Distance Vector (AODV) routing protocol allows the nodes
in a Mobile Ad hoc Network (MANET) or a Wireless Mesh Network (WMN) to know
where to forward data packets. Such a protocol is 'loop free' if it never leads
to routing decisions that forward packets in circles. This paper describes the
mechanization of an existing pen-and-paper proof of loop freedom of AODV in the
interactive theorem prover Isabelle/HOL. The mechanization relies on a novel
compositional approach for lifting invariants to networks of nodes. We exploit
the mechanization to analyse several improvements of AODV and show that
Isabelle/HOL can re-establish most proof obligations automatically and identify
exactly the steps that are no longer valid.Comment: The Isabelle/HOL source files, and a full proof document, are
available in the Archive of Formal Proofs, at
http://afp.sourceforge.net/entries/AODV.shtm
Mechanizing Principia Logico-Metaphysica in Functional Type Theory
Principia Logico-Metaphysica contains a foundational logical theory for
metaphysics, mathematics, and the sciences. It includes a canonical development
of Abstract Object Theory [AOT], a metaphysical theory (inspired by ideas of
Ernst Mally, formalized by Zalta) that distinguishes between ordinary and
abstract objects.
This article reports on recent work in which AOT has been successfully
represented and partly automated in the proof assistant system Isabelle/HOL.
Initial experiments within this framework reveal a crucial but overlooked fact:
a deeply-rooted and known paradox is reintroduced in AOT when the logic of
complex terms is simply adjoined to AOT's specially-formulated comprehension
principle for relations. This result constitutes a new and important paradox,
given how much expressive and analytic power is contributed by having the two
kinds of complex terms in the system. Its discovery is the highlight of our
joint project and provides strong evidence for a new kind of scientific
practice in philosophy, namely, computational metaphysics.
Our results were made technically possible by a suitable adaptation of
Benzm\"uller's metalogical approach to universal reasoning by semantically
embedding theories in classical higher-order logic. This approach enables one
to reuse state-of-the-art higher-order proof assistants, such as Isabelle/HOL,
for mechanizing and experimentally exploring challenging logics and theories
such as AOT. Our results also provide a fresh perspective on the question of
whether relational type theory or functional type theory better serves as a
foundation for logic and metaphysics.Comment: 14 pages, 6 figures; preprint of article with same title to appear in
The Review of Symbolic Logi
Harnessing Higher-Order (Meta-)Logic to Represent and Reason with Complex Ethical Theories
The computer-mechanization of an ambitious explicit ethical theory, Gewirth's
Principle of Generic Consistency, is used to showcase an approach for
representing and reasoning with ethical theories exhibiting complex logical
features like alethic and deontic modalities, indexicals, higher-order
quantification, among others. Harnessing the high expressive power of Church's
type theory as a meta-logic to semantically embed a combination of quantified
non-classical logics, our work pushes existing boundaries in knowledge
representation and reasoning. We demonstrate that intuitive encodings of
complex ethical theories and their automation on the computer are no longer
antipodes.Comment: 14 page
Mechanized semantics
The goal of this lecture is to show how modern theorem provers---in this
case, the Coq proof assistant---can be used to mechanize the specification of
programming languages and their semantics, and to reason over individual
programs and over generic program transformations, as typically found in
compilers. The topics covered include: operational semantics (small-step,
big-step, definitional interpreters); a simple form of denotational semantics;
axiomatic semantics and Hoare logic; generation of verification conditions,
with application to program proof; compilation to virtual machine code and its
proof of correctness; an example of an optimizing program transformation (dead
code elimination) and its proof of correctness
Mechanizing Webassembly Proposals
WebAssembly is a modern low-level programming language designed to provide high performance and security. To enable these goals, the language specifies a relatively small number of low-level types, instructions, and language constructs. The language is proven to be sound with respect to its types and execution, and a separate mechanized formalization of the specification and type soundness proofs confirms this. As an emerging technology, the language is continuously being developed, with modifications being proposed and discussed in the open and on a frequent basis.
In order to ensure the soundness properties exhibited by the original core language are maintained as WebAssembly evolves, these proposals should too be mechanized and verified to be sound. This work extends the existing Isabelle mechanization to include three such proposals which add additional features to the language, and shows that the language maintains its soundness properties with their inclusion
Verification-Preserving Inlining in Automatic Separation Logic Verifiers (extended version)
Bounded verification has proved useful to detect bugs and to increase
confidence in the correctness of a program. In contrast to unbounded
verification, reasoning about calls via (bounded) inlining and about loops via
(bounded) unrolling does not require method specifications and loop invariants
and, therefore, reduces the annotation overhead to the bare minimum, namely
specifications of the properties to be verified. For verifiers based on
traditional program logics, verification is preserved by inlining (and
unrolling): successful unbounded verification of a program w.r.t. some
annotation implies successful verification of the inlined program. That is, any
error detected in the inlined program reveals a true error in the original
program. However, this essential property might not hold for automatic
separation logic verifiers such as Caper, GRASShopper, RefinedC, Steel,
VeriFast, and verifiers based on Viper. In this setting, inlining generally
changes the resources owned by method executions, which may affect automatic
proof search algorithms and introduce spurious errors.
In this paper, we present the first technique for verification-preserving
inlining in automatic separation logic verifiers. We identify a semantic
condition on programs and prove in Isabelle/HOL that it ensures
verification-preserving inlining for state-of-the-art automatic separation
logic verifiers. We also prove a dual result: successful verification of the
inlined program ensures that there are method and loop annotations that enable
the verification of the original program for bounded executions. To check our
semantic condition automatically, we present two approximations that can be
checked syntactically and with a program verifier, respectively. We implement
these checks in Viper and demonstrate that they are effective for non-trivial
examples from different verifiers
A Case Study on Computational Hermeneutics: E. J. Lowe’s Modal Ontological Argument
Computers may help us to better understand (not just verify) arguments. In this article we defend this claim by showcasing the application of a new, computer-assisted interpretive method to an exemplary natural-language ar- gument with strong ties to metaphysics and religion: E. J. Lowe’s modern variant of St. Anselm’s ontological argument for the existence of God. Our new method, which we call computational hermeneutics, has been particularly conceived for use in interactive-automated proof assistants. It aims at shedding light on the meanings of words and sentences by framing their inferential role in a given argument. By employing automated theorem reasoning technology within interactive proof assistants, we are able to drastically reduce (by several orders of magnitude) the time needed to test the logical validity of an argu- ment’s formalization. As a result, a new approach to logical analysis, inspired by Donald Davidson’s account of radical interpretation, has been enabled. In computational hermeneutics, the utilization of automated reasoning tools ef- fectively boosts our capacity to expose the assumptions we indirectly commit ourselves to every time we engage in rational argumentation and it fosters the explicitation and revision of our concepts and commitments
Recommended from our members
ACKERMANN’S FUNCTION IN ITERATIVE FORM: A PROOF ASSISTANT EXPERIMENT
Ackermann's function can be expressed using an iterative algorithm, which
essentially takes the form of a term rewriting system. Although the termination
of this algorithm is far from obvious, its equivalence to the traditional
recursive formulation--and therefore its totality--has a simple proof in
Isabelle/HOL. This is a small example of formalising mathematics using a proof
assistant, with a focus on the treatment of difficult recursions.ERC Advanced Grant ALEXANDRIA (Project GA 742178
- …