500 research outputs found
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
Noninterfering schedulers: when possibilistic noninterference implies probabilistic noninterference
We develop a framework for expressing and analyzing the behavior of probabilistic schedulers. There, we define noninterfering schedulers by a probabilistic interpretation of Goguen and Meseguer’s seminal notion of noninterference.
Noninterfering schedulers are proved to be safe in the following sense: if a multi-threaded program is possibilistically noninterfering, then it is also probabilistically noninterfering when run under this scheduler
Formal verification of language-based concurrent noninterference
We perform a formal analysis of compositionality techniques for proving possibilistic noninterference for a while language with parallel composition. We develop a uniform framework where we express a wide range of noninterference variants from the literature and compare them w.r.t. their contracts: the strength of the security properties they ensure weighed against the harshness of the syntactic conditions they enforce. This results in a simple implementable algorithm for proving that a program has a specific noninterference property, using only compositionality, which captures uniformly several security type-system results from the literature and suggests a further improved type system. All formalism and theorems have been mechanically verified in Isabelle/HOL
Formalizing probabilistic noninterference
We present an Isabelle formalization of probabilistic noninterference for a multi-threaded language with uniform scheduling. Unlike in previous settings from the literature, here probabilistic behavior comes from both the scheduler and the individual threads, making the language more realistic and the mathematics more challenging. We study resumption-based and trace-based notions of probabilistic noninterference and their relationship, and also discuss compositionality w.r.t. the language constructs and type-system-like syntactic criteria. The
formalization uses recent development in the Isabelle probability theory library
Proving concurrent noninterference
We perform a formal analysis of compositionality techniques for proving possibilistic noninterference for a while language with parallel composition. We develop a uniform framework where we express a wide range of noninterference variants from the literature and compare them w.r.t. their contracts: the strength of the security properties they ensure weighed against the harshness of the syntactic conditions they enforce. This results in a simple implementable algorithm for proving that a program has a specific noninterference property, using only compositionality, which captures uniformly several security type-system results from the literature and suggests a further improved type system. All formalism and theorems have been mechanically verified in Isabelle/HOL
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
From LCF to Isabelle/HOL
Interactive theorem provers have developed dramatically over the past four
decades, from primitive beginnings to today's powerful systems. Here, we focus
on Isabelle/HOL and its distinctive strengths. They include automatic proof
search, borrowing techniques from the world of first order theorem proving, but
also the automatic search for counterexamples. They include a highly readable
structured language of proofs and a unique interactive development environment
for editing live proof documents. Everything rests on the foundation conceived
by Robin Milner for Edinburgh LCF: a proof kernel, using abstract types to
ensure soundness and eliminate the need to store proofs. Compared with the
research prototypes of the 1970s, Isabelle is a practical and versatile tool.
It is used by system designers, mathematicians and many others
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
- …