8 research outputs found
Combining models for interactive system modelling
Our approach for modelling interactive systems has been to develop models for the interface and interaction which are lightweight but with an underlying formal semantics. Combined with traditional formal methods to describe functional behaviour, this provides the ability to create a single formal model of interactive systems and consider all parts (functionality, user interface and interaction) with the same rigorous level of formality. The ability to convert the different models we use from one notation to another has given us a set of models which describe an interactive system (or parts of that system) at different levels of abstraction in ways most suitable for the domain but which can be combined into a single model for model checking, theorem proving, etc. There are, however, many benefits to using the individual models for different purposes throughout the development process. In this chapter, we provide examples of this using the nuclear power plant control system as an example
Recommended from our members
Collapsing towers of interpreters
Given a tower of interpreters, i.e., a sequence of multiple interpreters interpreting one another as input programs, we aim to collapse this tower into a compiler that removes all interpretive overhead and runs in a single pass. In the real world, a use case might be Python code executed by an x86 runtime, on a CPU emulated in a JavaScript VM, running on an ARM CPU. Collapsing such a tower can not only exponentially improve runtime performance, but also enable the use of base-language tools for interpreted programs, e.g., for analysis and verification. In this paper, we lay the foundations in an idealized but realistic setting.
We present a multi-level lambda calculus that features staging constructs and stage polymorphism: based on runtime parameters, an evaluator either executes source code (thereby acting as an interpreter) or generates code (thereby acting as a compiler). We identify stage polymorphism, a programming model from the domain of high-performance program generators, as the key mechanism to make such interpreters compose in a collapsible way.
We present Pink, a meta-circular Lisp-like evaluator on top of this calculus, and demonstrate that we can collapse arbitrarily many levels of self-interpretation, including levels with semantic modifications. We discuss several examples: compiling regular expressions through an interpreter to base code, building program transformers from modi ed interpreters, and others. We develop these ideas further to include reflection and reification, culminating in Purple, a reflective language inspired by Brown, Blond, and Black, which realizes a conceptually infinite tower, where every aspect of the semantics can change dynamically. Addressing an open challenge, we show how user programs can be compiled and recompiled under user-modified semantics.Parts of this research were supported by ERC grant 321217, NSF awards 1553471 and 1564207, and DOE award DE-SC0018050
Arrows for knowledge-based circuits
Knowledge-based programs (KBPs) are a formalism for directly relating agents' knowledge and behaviour in a way that has proven useful for specifying distributed systems. Here we present a scheme for compiling KBPs to executable automata in finite environments with a proof of correctness in Isabelle/HOL. We use Arrows, a functional programming abstraction, to structure a prototype domain-specific synchronous language embedded in Haskell. By adapting our compilation scheme to use symbolic representations we can apply it to several examples of reasonable size
Semantics for Homotopy Type Theory
The main aim of my PhD thesis is to define a semantics for Homotopy type theory based on elementary categorical tools. This led us to extend the study of this system in other directions: we proved a Normalisation theorem, and defined a generic syntax. All those results are obtained for a subset of the whole Homotopy type theory, which we called 1-HoTT theories.
A 1-HoTT theory is composed by Martin-L\uf6f type theory with generic inductive types, the axioms of function extensionality and univalence, truncation and generic 1-higher inductive types, which are a subset of the higher inductive types in which the higher constructor of a type T is limited to the type =T .
For those theories we obtained some proof theoretic results; the main one is a Normalisation theorem, following Girard's reducibility candidates technique.
The semantics is sound and complete, with the completeness result following from the existence of a canonical model, which is also classifying.
Our conjecture is that our proof theory and semantics can be extended to every single higher inductive type. The dissertation shows that a very large amount of higher inductive types can be analysed inside our framework: what prevents to extend the results is the lack of a systematic treatment of the syntax of the higher inductive types, which is still an open issue in Homotopy type theory
Semantics for Homotopy Type Theory
The main aim of my PhD thesis is to define a semantics for Homotopy type theory based on elementary categorical tools. This led us to extend the study of this system in other directions: we proved a Normalisation theorem, and defined a generic syntax. All those results are obtained for a subset of the whole Homotopy type theory, which we called 1-HoTT theories.
A 1-HoTT theory is composed by Martin-Löf type theory with generic inductive types, the axioms of function extensionality and univalence, truncation and generic 1-higher inductive types, which are a subset of the higher inductive types in which the higher constructor of a type T is limited to the type =T .
For those theories we obtained some proof theoretic results; the main one is a Normalisation theorem, following Girard's reducibility candidates technique.
The semantics is sound and complete, with the completeness result following from the existence of a canonical model, which is also classifying.
Our conjecture is that our proof theory and semantics can be extended to every single higher inductive type. The dissertation shows that a very large amount of higher inductive types can be analysed inside our framework: what prevents to extend the results is the lack of a systematic treatment of the syntax of the higher inductive types, which is still an open issue in Homotopy type theory
Aeronautical engineering: A cumulative index to a continuing bibliography
This bibliography is a cumulative index to the abstracts contained in NASA SP-7037(210) through NASA SP-7037(221) of Aeronautical Engineering: A Continuing Bibliography. NASA SP-7037 and its supplements have been compiled through the cooperative efforts of the American Institute of Aeronautics and Astronautics (AIAA) and the National Aeronautics and Space Administration (NASA). This cumulative index includes subject, personal author, corporate source, foreign technology, contract number, report number, and accession number indexes
A refinement theory for μ∼Charts
The language μ-Charts is one of many Statechart-like languages, a family of visual languages that are used for designing reactive systems. We introduce a logic for reasoning about and constructing refinements for μ-Charts. The logic itself is interesting and important because it allows reasoning about μ-charts in terms of partial relations rather than the more traditional traces approach. The method of derivation of the logic is also worthy of report. AZ-based model for the language μ-Charts is constructed and the existing logic and refinement calculus of Z is used as the basis for the logic of μ-Charts. As well as describing the logic we introduce some of the ways such a logic can be used to reason about properties of μ-Charts and the refinement of abstract specifications into concrete realisations of reactive systems.
A refinement theory for Statechart-like languages is an important contribution because it allows us to formally investigate and reason about properties of the object language μ-Charts. In particular, we can conjecture and prove general properties required of the object language. This allows us to contrast possible language design decisions and comment on their consequences with respect to the design of Statechart-like languages.
This thesis gives a comprehensive description of the μ-Charts language and details the development of a partial relations based logic and refinement calculus for the language. The logic and refinement calculus are presented as natural deduction style proof rules that allow us to give formal proofs of language properties and provide the basis for a formal program development framework. The notion of refinement that is encoded by the refinement rules is also extensively investigated