TL;DR: In this article, a formal representation called ''selection diagrams'' is introduced for expressing knowledge about differences and commonalities between environments and, using this representation, derive procedures for deciding whether effects in the target environment can be inferred from experiments conducted elsewhere.
Abstract: We address the problem of transferring information learned from experiments to a different environment, in which only passive observations can be collected. We introduce a formal representation called ``selection diagrams'' for expressing knowledge about differences and commonalities between environments and, using this representation, we derive procedures for deciding whether effects in the target environment can be inferred from experiments conducted elsewhere. When the answer is affirmative, the procedures identify the set of experiments and observations that need be conducted to license the transport. We further discuss how transportability analysis can guide the transfer of knowledge in non-experimental learning to minimize re-measurement cost and improve prediction power.
TL;DR: This second volume of a three-volume set on fundamentals of algebraic specification is suitable both as a textbook for graduate courses in formal specification of data types and software systems and as a reference for researchers and system developers.
Abstract: Two important new concepts, module specifications and constraints, are introduced in this second volume of a three-volume set on fundamentals of algebraic specification. These concepts are motivated by problems in practical software development and are studied here from a theoretical point of view. Modularization is one of the main structuring principles in software development. Modules and module specifications can be seen as the basic building blocks which are used in modularization of software systems and software system specification. Constraints are introduced to increase the expressive power of algebraic specifications in order to make them more useful for practical applications. The book is suitable both as a textbook for graduate courses in formal specification of data types and software systems and as a reference for researchers and system developers.
TL;DR: The theoretical principles and the modular architecture of CADP are described, which has inspired several other recent model checkers and compilers for various formal specification languages, equivalence checkers, model checker, performance evaluation tools, and parallel verification tools running on clusters and grids.
Abstract: Cadp (Construction and Analysis of Distributed Processes) is a comprehensive software toolbox that implements the results of concurrency theory. Started in the mid 80s, CADP has been continuously developed by adding new tools and enhancing existing ones. Today, CADP benefits from a worldwide user community, both in academia and industry. This paper presents the latest release CADP 2010, which is the result of a considerable development effort spanning the last four years. The paper first describes the theoretical principles and the modular architecture of CADP, which has inspired several other recent model checkers. The paper then reviews the main features of CADP 2010, including compilers for various formal specification languages, equivalence checkers, model checkers, performance evaluation tools, and parallel verification tools running on clusters and grids.
TL;DR: This work introduces a specification-based intrusion detection sensor that can be deployed in the field to identify security threats in real time and implements a set of constraints on transmissions made using the C12.22 standard protocol to ensure that all violations of the specified security policy will be detected.
Abstract: It is critical to develop an effective way to monitor advanced metering infrastructures (AMI). To ensure the security and reliability of a modernized power grid, the current deployment of millions of smart meters requires the development of innovative situational awareness solutions to prevent compromised devices from impacting the stability of the grid and the reliability of the energy distribution infrastructure. To address this issue, we introduce a specification-based intrusion detection sensor that can be deployed in the field to identify security threats in real time. This sensor monitors the traffic among meters and access points at the network, transport, and application layers to ensure that devices are running in a secure state and their operations respect a specified security policy. It does this by implementing a set of constraints on transmissions made using the C12.22 standard protocol that ensure that all violations of the specified security policy will be detected. The soundness of these constraints was verified using a formal framework, and a prototype implementation of the sensor was evaluated with realistic AMI network traffic.
TL;DR: The B Language and Method provides a comprehensive introduction to the B Abstract Machine Notation, and how it can be used to support formal specification and development of high integrity systems.
Abstract: From the Publisher:
B is a formal approach to software specification and development based on the Z specification language. It has been successfully applied in industry, and has robust, commercially available tool support for the entire development lifecycle, from specification through to code generation. The B Language and Method provides a comprehensive introduction to the B Abstract Machine Notation, and how it can be used to support formal specification and development of high integrity systems. Beginning with a discussion of the history of B, it builds up a description of the notation from the basic mathematical notation for sets and sequences, through to the structuring mechanisms of the language, and how it supports "programming in the large". Particular emphasis is placed on the use of B in the context of existing software development methods, including object-oriented analysis and design. Specifically designed to support the teaching of B at undergraduate and postgraduate level, the text includes a large number of worked examples and graduated exercises in B AMN specification. It also includes two extended case studies of the development process, and an appendix of proof techniques suitable for B.
TL;DR: This work argues that its approach to specification mining for synthesis from LTL based on specification mining is a natural way to discover the designer's intent and demonstrates the effectiveness of the approach on examples from the domains of digital circuits and robotic controllers.
Abstract: Automatic synthesis of a reactive system from its formal specification is appealing but often difficult due to the tedium of writing auxiliary specifications, especially on the environment. In several instances, specifications are found unrealizable as a result of insufficient environmental assumptions. We present an approach to this problem for synthesis from LTL based on specification mining. For a satisfiable but unrealizable specification, a counter-strategy can be computed from the synthesis game as a witness to unrealizability. Our algorithm mines environment assumptions from this counter-strategy as well as user scenarios if they are provided. We argue that our approach is a natural way to discover the designer's intent. We demonstrate the effectiveness of our approach on examples from the domains of digital circuits and robotic controllers.
TL;DR: This work demonstrates how formal contract-based component specifications for functional, safety, and real-time aspects of components can be expressed using the pattern-based requirement specification language RSL developed in the Artemis Project CESAR, and develops a formal approach for virtual integration testing of composed systems based on such contract-specifications of subsystems.
Abstract: We elaborate on the theoretical foundation and practical application of the contract-based specification method originally developed in the Integrated Project SPEEDS [11], [9] for two key use cases in embedded systems design. We demonstrate how formal contract-based component specifications for functional, safety, and real-time aspects of components can be expressed using the pattern-based requirement specification language RSL developed in the Artemis Project CESAR, and develop a formal approach for virtual integration testing of composed systems based on such contract-specifications of subsystems. We then present a methodology for multi-criteria architecture evaluation developed in the German Innovation Alliance SPES on Embedded Systems.
TL;DR: New, completely automatic inference techniques and a supporting tool are presented, which take advantage of the presence of simple programmer-written contracts in the code to infer sophisticated assertions, involving for example implication and universal quantification.
Abstract: Considerable progress has been made towards automatic support for one of the principal techniques available to enhance program reliability: equipping programs with extensive contracts. The results of current contract inference tools are still often unsatisfactory in practice, especially for programmers who already apply some kind of basic Design by Contract discipline, since the inferred contracts tend to be simple assertions - the very ones that programmers find easy to write. We present new, completely automatic inference techniques and a supporting tool, which take advantage of the presence of simple programmer-written contracts in the code to infer sophisticated assertions, involving for example implication and universal quantification. Applied to a production library of classes covering standard data structures such as linked lists, arrays, stacks, queues and hash tables, the tool is able, entirely automatically, to infer 75% of the complete contracts - contracts yielding the full formal specification of the classes - with very few redundant or irrelevant clauses.
TL;DR: This paper proposes a rule weight optimization method which casts the instantiated inference tree as a knowledge-based neural network, interprets rule uncertainties as link weights in the network, and applies a constrained, back-propagation algorithm to converge upon a set of rule weights that give optimal performance within the bilattice framework.
Abstract: Predicate logic based reasoning approaches provide a means of formally specifying domain knowledge and manipulating symbolic information to explicitly reason about different concepts of interest. Extension of traditional binary predicate logics with the bilattice formalism permits the handling of uncertainty in reasoning, thereby facilitating their application to computer vision problems. In this paper, we propose using first order predicate logics, extended with a bilattice based uncertainty handling formalism, as a means of formally encoding pattern grammars, to parse a set of image features, and detect the presence of different patterns of interest. Detections from low level feature detectors are treated as logical facts and, in conjunction with logical rules, used to drive the reasoning. Positive and negative information from different sources, as well as uncertainties from detections, are integrated within the bilattice framework. We show that this approach can also generate proofs or justifications (in the form of parse trees) for each hypothesis it proposes thus permitting direct analysis of the final solution in linguistic form. Automated logical rule weight learning is an important aspect of the application of such systems in the computer vision domain. We propose a rule weight optimization method which casts the instantiated inference tree as a knowledge-based neural network, interprets rule uncertainties as link weights in the network, and applies a constrained, back-propagation algorithm to converge upon a set of rule weights that give optimal performance within the bilattice framework. Finally, we evaluate the proposed predicate logic based pattern grammar formulation via application to the problems of (a) detecting the presence of humans under partial occlusions and (b) detecting large complex man made structures as viewed in satellite imagery. We also evaluate the optimization approach on real as well as simulated data and show favorable results.
TL;DR: This paper presents one approach to metamodeling frameworks, which are specified modularly using algebraic data types and constraint logic programming (CLP).
Abstract: Metamodeling is foundational to many modeling frameworks, and so it is important to formalize and reason about it. Ideally, correctness proofs and test-case generation on the metamodeling framework should be automatic. However, it has yet to be shown that extensive automated reasoning on metamodeling frameworks can be achieved. In this paper we present one approach to this problem: Metamodeling frameworks are specified modularly using algebraic data types and constraint logic programming (CLP). Proofs and test-case generation are encoded as CLP satisfiability problems and automatically solved.
TL;DR: Agile methods have matured since the academic community suggested almost a decade ago that they were not suitable for safety‐critical systems; the experiences on the image‐guided surgical toolkit project are presented as a case study for renewing the discussion.
TL;DR: A unifying framework for modeling surgical processes that is ontologically founded and formally and mathematically precise was developed and demonstrated by applying it to four contemporary approaches for surgical process modeling by using the common underlying formalization.
TL;DR: This work presents a unified environment for running declarative specifications in the context of an imperative object-Oriented programming language, and presents an optimization technique that allowed them to run their tool on heaps with almost 2000 objects.
Abstract: We present a unified environment for running declarative specifications in the context of an imperative object-Oriented programming language. Specifications are Alloy-like, written in first-order relational logic with transitive closure, and the imperative language is Java. By being able to mix imperative code with executable declarative specifications, the user can easily express constraint problems in place, i.e., in terms of the existing data structures and objects on the heap. After a solution is found, the heap is updated to reflect the solution, so the user can continue to manipulate the program heap in the usual imperative way. We show that this approach is not only convenient, but, for certain problems can also outperform a standard imperative implementation. We also present an optimization technique that allowed us to run our tool on heaps with almost 2000 objects.
TL;DR: The method customizes the Australian standard risk management process, where the system context is the UML-based software specification, enriched with standard MARTE profile annotations to capture nonfunctional system properties.
Abstract: Software systems that do not meet their timing constraints can cause risks. In this work, we propose a comprehensive method for assessing the risk of timing failure by evaluating the software design. We show how to apply best practises in software engineering and well-known Time Petri Net (TPN) modeling and analysis techniques, and we demonstrate the effectiveness of the method with reference to a case study in the domain of real-time embedded systems. The method customizes the Australian standard risk management process, where the system context is the UML-based software specification, enriched with standard MARTE profile annotations to capture nonfunctional system properties. During the risk analysis, a TPN is derived, via model transformation, from the software design specification and TPN bound techniques are applied to estimate the probability of timing failure. TPN bound techniques are also exploited, within the risk evaluation and treatment steps, to identify the risk causes in the software design.
TL;DR: In this article, the authors introduce a method to hybridize logics at the same institution-independent level by extending arbitrary institutions with Kripke semantics (for multi-modalities with arbitrary arities) and hybrid features, and show that any encoding from an arbitrary institution to first order logic (FOL) determines a comorphism from its hybridization to FOL.
Abstract: Modal logics are successfully used as specification logics for reactive systems. However, they are not expressive enough to refer to individual states and reason about the local behaviour of such systems. This limitation is overcome in hybrid logics which introduce special symbols for naming states in models. Actually, hybrid logics have recently regained interest, resulting in a number of new results and techniques as well as applications to software specification.
In this context, the first contribution of this paper is an attempt to 'universalize' the hybridization idea. Following the lines of [15], where a method to modalize arbitrary institutions is presented, the paper introduces a method to hybridize logics at the same institution-independent level. The method extends arbitrary institutions with Kripke semantics (for multi-modalities with arbitrary arities) and hybrid features. This paves the ground for a general result: any encoding (expressed as comorphism) from an arbitrary institution to first order logic (FOL) determines a comorphism from its hybridization to FOL. This second contribution opens the possibility of effective tool support to specification languages based upon logics with hybrid features.
TL;DR: In this paper, the authors developed a computational framework for fully automatic deployment of a team of unicycles from a global specification given as an LTL formula over some regions of interest.
Abstract: In this paper, we develop a computational framework for fully automatic deployment of a team of unicycles from a global specification given as an LTL formula over some regions of interest. Our hierarchical approach consists of four steps: (i) the construction of finite abstractions for the motions of each robot, (ii) the parallel composition of the abstractions, (iii) the generation of a satisfying motion of the team; (iv) mapping this motion to individual robot control and communication strategies. The main result of the paper is an algorithm to reduce the amount of inter-robot communication during the fourth step of the procedure.
TL;DR: This work presents a methodology and a supporting model-checking tool for verifying behavioral Java programs, without having to first translate them into a specific input language for the model checker.
Abstract: System specifications are often structured as collections of scenarios and use-cases that describe desired and forbidden sequences of events. A recently proposed behavioral programming approach, which evolved from the visual language of live sequence charts (LSCs), calls for coding software modules in alignment with such scenarios. We present a methodology and a supporting model-checking tool for verifying behavioral Java programs, without having to first translate them into a specific input language for the model checker. Our method facilitates early discovery of conflicting or under-specified scenarios, which can often be resolved by adding new scenarios rather than by changing existing code. Also, counterexamples provided by the tool are themselves event sequences that can serve directly for refinements and corrections. Our tool reduces the size of the execution state-space using an abstraction that focuses on behaviorally interesting states and treats transitions between them as atomic.
TL;DR: A formal component model for the specification of component's structure, functional, and non-functional (trustworthiness) properties, a model transformation technique for the automatic generation of component behavior using the specified structure and restricted by the specified properties, and a unified formal verification method for safety, security, reliability and availability properties using model checking.
TL;DR: A goal-based approach is proposed in which initial formal models are built incrementally driven by a goal-oriented requirements engineering (GORE) paradigm.
Abstract: With most of formal methods, an initial formal model can be refined in multiple steps, until the final refinement contains enough details for an implementation. Most of the time, this initial model is built from the description obtained by the requirements analysis. Unfortunately, this transition from the requirements phase to the formal specification phase is one of the most painful steps and is still ambiguous. In fact, building this initial model requires a high level of competence and a lot of practice, especially as there is no well-defined process to assist designers. For that purpose, we propose a goal-based approach in which initial formal models (in Event-B) are built incrementally driven by a goal-oriented requirements engineering (GORE) paradigm.
TL;DR: The refereed proceedings of the 36th International Symposium on Mathematical Foundations of Computer Science (MFCS 2011) as discussed by the authors were published in 2011, with 48 revised full papers presented together with 6 invited talks.
Abstract: This volume constitutes the refereed proceedings of the 36th International Symposium on Mathematical Foundations of Computer Science, MFCS 2011, held in Warsaw, Poland, in August 2011. The 48 revised full papers presented together with 6 invited talks were carefully reviewed and selected from 129 submissions. Topics covered include algorithmic game theory, algorithmic learning theory, algorithms and data structures, automata, grammars and formal languages, bioinformatics, complexity, computational geometry, computer-assisted reasoning, concurrency theory, cryptography and security, databases and knowledge-based systems, formal specifications and program development, foundations of computing, logic in computer science, mobile computing, models of computation, networks, parallel and distributed computing, quantum computing, semantics and verification of programs, and theoretical issues in artificial intelligence.
TL;DR: This work presents a centralized control architecture for assigning PTZ cameras to targets so that the specification is met for any admissible behavior of the targets and proposes a distributed synthesis methodology to decompose the global specification into local specifications for each PTZ camera.
Abstract: We considered the problem of designing control protocols for pan-tilt-zoom (PTZ) cameras within a smart camera network where the goal is to guarantee certain temporal logic specifications related to a given surveillance task. We first present a centralized control architecture for assigning PTZ cameras to targets so that the specification is met for any admissible behavior of the targets. Then, in order to alleviate the computational complexity associated with LTL synthesis and to enable implementation of local control protocols on individual PTZ cameras, we propose a distributed synthesis methodology. The main idea is to decompose the global specification into local specifications for each PTZ camera. These decompositions allow the protocols for each camera to be separately synthesized and locally implemented while guaranteeing the global specifications to hold. A thorough design example is presented to illustrate the steps of the proposed procedure.
TL;DR: A Web-based visual modeling tool has been developed using JavaScript to demonstrate how BPMN can be used to represent an ABS conceptual model and how the tool translates the conceptual model into code ready for execution using Repast HPC.
Abstract: In a simulation project, a good conceptual model representation is critical for communicating conceptual models between stakeholders. A conceptual model describes the problem domain and model specifications. The description of the problem domain includes the objectives, inputs, outputs, content, assumptions and simplifications made in the model. The model specifications are used to specify the model's behavior. This article focuses on the representation of the model content (structure, boundary and level of detail) component of an agent-based simulation (ABS) model. For this, we propose the use of Business Process Model and Notation (BPMN) from the Object Management Group. A Web-based visual modeling tool has been developed using JavaScript to demonstrate how BPMN can be used to represent an ABS conceptual model and how the tool translates the conceptual model into code ready for execution using Repast HPC.
TL;DR: This chapter gives an overview of the different approaches and tools pertaining to formal methods and focuses on the main approaches (formal specification, formal verification and proofs, transformation, and formal development).
Abstract: The goal of this chapter is to give an overview of the different approaches and tools pertaining to formal methods. We do not attempt to be exhaustive, but focus instead on the main approaches (formal specification, formal verification and proofs, transformation, and formal development). A consise introduction to basic logic concepts and methods is also provided. After reading the chapter the reader will be familiar with the terminology of the area, as well as with the most important concepts and techniques.
TL;DR: This paper examines the formal specification and verification of concurrent abstract predicates used to encapsulate racy behaviour in the library's implementation, and shows that the high-level specification abstracts the details of deterministic parallelism by verifying two different low-level implementations of the library.
Abstract: Weaving a concurrency control protocol into a program is difficult and error-prone. One way to alleviate this burden is deterministic parallelism. In this well-studied approach to parallelisation, a sequential program is annotated with sections that can execute concurrently, with automatically injected control constructs used to ensure observable behaviour consistent with the original program.This paper examines the formal specification and verification of these constructs. Our high-level specification defines the conditions necessary for correct execution; these conditions reflect program dependencies necessary to ensure deterministic behaviour. We connect the high-level specification used by clients of the library with the low-level library implementation, to prove that a client's requirements for determinism are enforced. Significantly, we can reason about program and library correctness without breaking abstraction boundaries.To achieve this, we use concurrent abstract predicates, based on separation logic, to encapsulate racy behaviour in the library's implementation. To allow generic specifications of libraries that can be instantiated by client programs, we extend the logic with higher-order parameters and quantification. We show that our high-level specification abstracts the details of deterministic parallelism by verifying two different low-level implementations of the library.
TL;DR: The technique makes use of Java annotations, which link the concrete implementation to its formal model, without enriching the code with behavioral information contained only in the abstract specification, and allows the reuse of specifications for other purposes.
Abstract: We present CoMA (Conformance Monitoring by Abstract State Machines), a specification-based approach and its supporting tool for runtime monitoring of Java software. Based on the information obtained from code execution and model simulation, the conformance of the concrete implementation is checked with respect to its formal specification given in terms of Abstract State Machines. At runtime, undesirable behaviors of the implementation, as well as incorrect specifications of the system behavior are recognized.
The technique we propose makes use of Java annotations, which link the concrete implementation to its formal model, without enriching the code with behavioral information contained only in the abstract specification. The approach fosters the separation between implementation and specification, and allows the reuse of specifications for other purposes (formal verification, simulation, model-based testing, etc.).
TL;DR: An empirical study to evaluate the accuracy of a broad range of models for predicting many different kinds of code navigations in sample maintenance tasks found that models tended to perform best if they take into account how recently a developer has viewed pieces of the code, and if models took into account the spatial proximity of methods within the code.
Abstract: Software developers frequently need to perform code maintenance tasks, but doing so requires time-consuming navigation through code A variety of tools are aimed at easing this navigation by using models to identify places in the code that a developer might want to visit, and then providing shortcuts so that the developer can quickly navigate to those locations To date, however, only a few of these models have been compared head-to-head to assess their predictive accuracy In particular, we do not know which models are most accurate overall, which are accurate only in certain circumstances, and whether combining models could enhance accuracy Therefore, we have conducted an empirical study to evaluate the accuracy of a broad range of models for predicting many different kinds of code navigations in sample maintenance tasks Overall, we found that models tended to perform best if they took into account how recently a developer has viewed pieces of the code, and if models took into account the spatial proximity of methods within the code We also found that the accuracy of single-factor models can be improved by combining factors, using a spreading-activation based approach, to produce multi-factor models Based on these results, we offer concrete guidance about how these models could be used to provide enhanced software development tools that ease the difficulty of navigating through code
TL;DR: This work proposes the first specification theory which allows to capture quantitative aspects during the refinement and implementation process of component-based software systems.
Abstract: Specification theories as a tool in the development process of component-based software systems have recently attracted a considerable attention. Current specification theories are however qualitative in nature and hence fragile and unsuited for modern software systems. We propose the first specification theory which allows to capture quantitative aspects during the refinement and implementation process.
TL;DR: This work addresses the problem of controlling a Markov Decision Process (MDP) such that the probability of satisfying a temporal logic specification over a set of properties associated to its states is maximized and shows that controllers can be synthesized by adapting existing PCTL model checking algorithms.
Abstract: We address the problem of controlling a Markov Decision Process (MDP) such that the probability of satisfying a temporal logic specification over a set of properties associated to its states is maximized. We focus on specifications given as formulas of Probabilistic Computation Tree Logic (PCTL) and show that controllers can be synthesized by adapting existing PCTL model checking algorithms. We illustrate the approach by applying it to the automatic deployment of a mobile robot in an indoor-like environment with respect to a PCTL specification.