520 research outputs found
Certified Universal Gathering in for Oblivious Mobile Robots
We present a unified formal framework for expressing mobile robots models,
protocols, and proofs, and devise a protocol design/proof methodology dedicated
to mobile robots that takes advantage of this formal framework. As a case
study, we present the first formally certified protocol for oblivious mobile
robots evolving in a two-dimensional Euclidean space. In more details, we
provide a new algorithm for the problem of universal gathering mobile oblivious
robots (that is, starting from any initial configuration that is not bivalent,
using any number of robots, the robots reach in a finite number of steps the
same position, not known beforehand) without relying on a common orientation
nor chirality. We give very strong guaranties on the correctness of our
algorithm by proving formally that it is correct, using the COQ proof
assistant. This result demonstrates both the effectiveness of the approach to
obtain new algorithms that use as few assumptions as necessary, and its
manageability since the amount of developed code remains human readable.Comment: arXiv admin note: substantial text overlap with arXiv:1506.0160
Machine Learning of Coq Proof Guidance: First Experiments
We report the results of the first experiments with learning proof
dependencies from the formalizations done with the Coq system. We explain the
process of obtaining the dependencies from the Coq proofs, the characterization
of formulas that is used for the learning, and the evaluation method. Various
machine learning methods are compared on a dataset of 5021 toplevel Coq proofs
coming from the CoRN repository. The best resulting method covers on average
75% of the needed proof dependencies among the first 100 predictions, which is
a comparable performance of such initial experiments on other large-theory
corpora
Combining behavioural types with security analysis
Today's software systems are highly distributed and interconnected, and they
increasingly rely on communication to achieve their goals; due to their
societal importance, security and trustworthiness are crucial aspects for the
correctness of these systems. Behavioural types, which extend data types by
describing also the structured behaviour of programs, are a widely studied
approach to the enforcement of correctness properties in communicating systems.
This paper offers a unified overview of proposals based on behavioural types
which are aimed at the analysis of security properties
Extracting Imperative Programs from Proofs: In-place Quicksort
The process of program extraction is primarily associated with
functional programs with less focus on imperative program extraction. In this paper we consider a standard problem for imperative programming: In-place Quicksort. We formalize a proof that every array of natural numbers can be sorted and apply a realizability
interpretation to extract a program from the proof. Using monads we
are able to exhibit the inherent imperative nature of the extracted
program. We see this as a first step towards an automated extraction of imperative programs. The case study is carried out in the interactive proof assistant Minlog
A logical foundation for session-based concurrent computation
Linear logic has long been heralded for its potential of providing a logical basis for concurrency.
While over the years many research attempts were made in this regard, a Curry-Howard correspondence between linear logic and concurrent computation was only found recently, bridging the proof theory of linear logic and session-typed process calculus. Building upon this work, we have
developed a theory of intuitionistic linear logic as a logical foundation for session-based concurrent computation, exploring several concurrency related phenomena such as value-dependent session
types and polymorphic sessions within our logical framework in an arguably clean and elegant way, establishing with relative ease strong typing guarantees due to the logical basis, which ensure the fundamental properties of type preservation and global progress, entailing the absence of deadlocks
in communication.
We develop a general purpose concurrent programming language based on the logical interpretation, combining functional programming with a concurrent, session-based process layer through the form of a contextual monad, preserving our strong typing guarantees of type preservation and
deadlock-freedom in the presence of general recursion and higher-order process communication.
We introduce a notion of linear logical relations for session typed concurrent processes, developing an arguably uniform technique for reasoning about sophisticated properties of session-based concurrent computation such as termination or equivalence based on our logical approach, further supporting our goal of establishing intuitionistic linear logic as a logical foundation for sessionbased concurrency
Constructive Game Logic
Game Logic is an excellent setting to study proofs-about-programs via the
interpretation of those proofs as programs, because constructive proofs for
games correspond to effective winning strategies to follow in response to the
opponent's actions. We thus develop Constructive Game Logic which extends
Parikh's Game Logic (GL) with constructivity and with first-order programs a la
Pratt's first-order dynamic logic (DL). Our major contributions include:
1) a novel realizability semantics capturing the adversarial dynamics of
games, 2) a natural deduction calculus and operational semantics describing the
computational meaning of strategies via proof-terms, and 3) theoretical results
including soundness of the proof calculus w.r.t. realizability semantics,
progress and preservation of the operational semantics of proofs, and Existence
Properties on support of the extraction of computational artifacts from game
proofs.
Together, these results provide the most general account of a Curry-Howard
interpretation for any program logic to date, and the first at all for Game
Logic.Comment: 74 pages, extended preprint for ESO
- …