554 research outputs found
Remote-scope Promotion: Clarified, Rectified, and Verified
Modern accelerator programming frameworks, such as OpenCL, organise threads into work-groups. Remote-scope promotion (RSP) is a language extension recently proposed by AMD researchers that is designed to enable applications, for the first time, both to optimise for the common case of intra-work-group communication (using memory scopes to provide consistency only within a work-group) and to allow occasional inter-work-group communication (as required, for instance, to support the popular load-balancing idiom of work stealing). We present the first formal, axiomatic memory model of OpenCL extended with RSP. We have extended the Herd memory model simulator with support for OpenCL kernels that exploit RSP, and used it to discover bugs in several litmus tests and a work-stealing queue, that have been used previously in the study of RSP. We have also formalised the proposed GPU implementation of RSP. The formalisation process allowed us to identify bugs in the description of RSP that could result in well-synchronised programs experiencing memory inconsistencies. We present and prove sound a new implementation of RSP that incorporates bug fixes and requires less non-standard hardware than the original implementation. This work, a collaboration between academia and industry, clearly demonstrates how, when designing hardware support for a new concurrent language feature, the early application of formal tools and techniques can help to prevent errors, such as those we have found, from making it into silicon
Set Theory or Higher Order Logic to Represent Auction Concepts in Isabelle?
When faced with the question of how to represent properties in a formal proof
system any user has to make design decisions. We have proved three of the
theorems from Maskin's 2004 survey article on Auction Theory using the
Isabelle/HOL system, and we have produced verified code for combinatorial
Vickrey auctions. A fundamental question in this was how to represent some
basic concepts: since set theory is available inside Isabelle/HOL, when
introducing new definitions there is often the issue of balancing the amount of
set-theoretical objects and of objects expressed using entities which are more
typical of higher order logic such as functions or lists. Likewise, a user has
often to answer the question whether to use a constructive or a
non-constructive definition. Such decisions have consequences for the proof
development and the usability of the formalization. For instance, sets are
usually closer to the representation that economists would use and recognize,
while the other objects are closer to the extraction of computational content.
In this paper we give examples of the advantages and disadvantages for these
approaches and their relationships. In addition, we present the corresponding
Isabelle library of definitions and theorems, most prominently those dealing
with relations and quotients.Comment: Preprint of a paper accepted for the forthcoming CICM 2014 conference
(cicm-conference.org/2014): S.M. Watt et al. (Eds.): CICM 2014, LNAI 8543,
Springer International Publishing Switzerland 2014. 16 pages, 1 figur
Concrete Semantics with Coq and CoqHammer
The "Concrete Semantics" book gives an introduction to imperative programming
languages accompanied by an Isabelle/HOL formalization. In this paper we
discuss a re-formalization of the book using the Coq proof assistant. In order
to achieve a similar brevity of the formal text we extensively use CoqHammer,
as well as Coq Ltac-level automation. We compare the formalization efficiency,
compactness, and the readability of the proof scripts originating from a Coq
re-formalization of two chapters from the book
Interactive Simplifier Tracing and Debugging in Isabelle
The Isabelle proof assistant comes equipped with a very powerful tactic for
term simplification. While tremendously useful, the results of simplifying a
term do not always match the user's expectation: sometimes, the resulting term
is not in the form the user expected, or the simplifier fails to apply a rule.
We describe a new, interactive tracing facility which offers insight into the
hierarchical structure of the simplification with user-defined filtering,
memoization and search. The new simplifier trace is integrated into the
Isabelle/jEdit Prover IDE.Comment: Conferences on Intelligent Computer Mathematics, 201
CoSMed: a confidentiality-verified social media platform
This paper describes progress with our agenda of formal verification of information-flow security for realistic systems. We present CoSMed, a social media platform with verified document confidentiality. The system’s kernel is implemented and verified in the proof assistant Isabelle/HOL. For verification, we employ the framework of Bounded-Deducibility (BD) Security, previously introduced for the conference system CoCon. CoSMed is a second major case study in this framework. For CoSMed, the static topology of declassification bounds and triggers that characterized previous instances of BD security has to give way to a dynamic integration of the triggers as part of the bound
A Proof Strategy Language and Proof Script Generation for Isabelle/HOL
We introduce a language, PSL, designed to capture high level proof strategies
in Isabelle/HOL. Given a strategy and a proof obligation, PSL's runtime system
generates and combines various tactics to explore a large search space with low
memory usage. Upon success, PSL generates an efficient proof script, which
bypasses a large part of the proof search. We also present PSL's monadic
interpreter to show that the underlying idea of PSL is transferable to other
ITPs.Comment: This paper has been submitted to CADE2
Mobile Resource Guarantees for Smart Devices
Abstract. We present the Mobile Resource Guarantees framework: a system for ensuring that downloaded programs are free from run-time violations of resource bounds. Certificates are attached to code in the form of efficiently checkable proofs of resource bounds; in contrast to cryptographic certificates of code origin, these are independent of trust networks. A novel programming language with resource constraints encoded in function types is used to streamline the generation of proofs of resource usage.
Formal Proof of SCHUR Conjugate Function
The main goal of our work is to formally prove the correctness of the key
commands of the SCHUR software, an interactive program for calculating with
characters of Lie groups and symmetric functions. The core of the computations
relies on enumeration and manipulation of combinatorial structures. As a first
"proof of concept", we present a formal proof of the conjugate function,
written in C. This function computes the conjugate of an integer partition. To
formally prove this program, we use the Frama-C software. It allows us to
annotate C functions and to generate proof obligations, which are proved using
several automated theorem provers. In this paper, we also draw on methodology,
discussing on how to formally prove this kind of program.Comment: To appear in CALCULEMUS 201
Tactics for Reasoning modulo AC in Coq
We present a set of tools for rewriting modulo associativity and
commutativity (AC) in Coq, solving a long-standing practical problem. We use
two building blocks: first, an extensible reflexive decision procedure for
equality modulo AC; second, an OCaml plug-in for pattern matching modulo AC. We
handle associative only operations, neutral elements, uninterpreted function
symbols, and user-defined equivalence relations. By relying on type-classes for
the reification phase, we can infer these properties automatically, so that
end-users do not need to specify which operation is A or AC, or which constant
is a neutral element.Comment: 16
Making security type systems less ad hoc
We present a uniform, top-down design method for security type systems applied to a parallel while-language. The method takes the following route: from a notion of end-to-end security via a collection of stronger notions of anytime security targeting compositionality to a matching collection of type-system-like syntactic criteria. This method has emerged by distilling and unifying security type system results from the literature while formalizing them in a proof assistant. Unlike in our previous papers on this topic, here we focus entirely on high-level ideas
instead of technical proof details
- …
