42 research outputs found
A semantics and a logic for Fuzzy Arden Syntax
Fuzzy programming languages, such as the Fuzzy Arden Syntax (FAS), are used to describe behaviours which evolve in a fuzzy way and thus cannot be characterized neither by a Boolean outcome nor by a probability distribution. This paper introduces a semantics for FAS, focusing on the weighted parallel interpretation of its conditional statement. The proposed construction is based on the notion of a fuzzy multirelation which associates with each state in a program a fuzzy set of weighted possible evolutions. The latter is parametric on a residuated lattice which models the underlying semantic ‘truth space’. Finally, a family of dynamic logics, equally parametric on the residuated lattice, is introduced to reason about FAS programsThis work was founded by the ERDF — European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation — COMPETE 2020 Pro gramme and by National Funds through the Portuguese funding agency, FCT — Fundação para a Ciência e a Tecnologia, within projects
POCI-01-0145-FEDER-030947and POCI-01-0145-FEDER-02994
Hoare Semigroups
A semigroup-based setting for developing Hoare logics and refinement calculi is introduced together with procedures for translating between verification and refinement proofs. A new Hoare logic for multirelations and two minimalist generic verification and refinement components, implemented in an interactive theorem prover, are presented as applications that benefit from this generalisation
Synthesis of Strategies Using the Hoare Logic of Angelic and Demonic Nondeterminism
We study a propositional variant of Hoare logic that can be used for
reasoning about programs that exhibit both angelic and demonic nondeterminism.
We work in an uninterpreted setting, where the meaning of the atomic actions is
specified axiomatically using hypotheses of a certain form. Our logical
formalism is entirely compositional and it subsumes the non-compositional
formalism of safety games on finite graphs. We present sound and complete
Hoare-style calculi that are useful for establishing partial-correctness
assertions, as well as for synthesizing implementations. The computational
complexity of the Hoare theory of dual nondeterminism is investigated using
operational models, and it is shown that the theory is complete for exponential
time
Angelic Processes
In the formal modelling of systems, demonic and angelic nondeterminism play fundamental roles as abstraction mechanisms. The angelic nature of a choice pertains to the property of avoiding failure whenever possible. As a concept, angelic choice first appeared in automata theory and Turing machines, where it can be implemented via backtracking. It has traditionally been studied in the refinement calculus, and has proved to be useful in a variety of applications and refinement techniques. Recently it has been studied within relational, multirelational and higher-order models. It has been employed for modelling user interactions, game-like scenarios, theorem proving tactics, constraint satisfaction problems and control systems.
When the formal modelling of state-rich reactive systems is considered, it only seems natural that both types of nondeterministic choice should be considered. However, despite several treatments of angelic nondeterminism in the context of process algebras, namely Communicating Sequential Processes, the counterpart to the angelic choice of the refinement calculus has been elusive.
In this thesis, we develop a semantics in the relational setting of Hoare and He's Unifying Theories of Programming that enables the characterisation of angelic nondeterminism in CSP. Since CSP processes are given semantics in the UTP via designs, that is, pre and postcondition pairs, we first introduce a theory of angelic designs, and an isomorphic multirelational model, that is suitable for characterising processes. We then develop a theory of reactive angelic designs by enforcing the healthiness conditions of CSP. Finally, by introducing a notion of divergence that can undo the history of events, we obtain a model where angelic choice avoids divergence. This lays the foundation for a process algebra with both nondeterministic constructs, where existing and novel abstract modelling approaches can be considered. The UTP basis of our work makes it applicable in the wider context of reactive systems
A Linear Specification Language for Petri Nets
This paper defines a category GNet with object set all Petri nets. A morphism in GNet from a net N to a net N' gives a precise way of simulating every evolution of N by an evolution of N'. We exhibit a morphism from a simple message handler to one with error-correction, showing that the more refined message handler can simulate any behaviour of its simple counterpart. The existence of such a morphism proves the correctness of the refinement
Towards a quantitative alloy
Dissertação de mestrado integrado em Engenharia InformáticaWhen one comes across a new problem that needs to be solved, by abstracting from its associated details
in a simple and concise way through the use of formal methods, one is able to better understand the matter
at hand. Alloy (Jackson, 2012), a declarative specification language based on relational logic, is an example
of an effective modelling tool, allowing high-level specification of potentially very complex systems. However,
along with the irrelevant information, measurable data of the system is often lost in the abstraction as well,
making it not as adequate for certain situations.
The Alloy Analyzer represents the relations under analysis by Boolean matrices. By extending this type of
structure to:
• numeric matrices, over N0
, one is able to work with multirelations, i.e. relations whose arcs are
weighted; each tuple is thus associated with a natural number, which allows reasoning in a similar
fashion as in optimization problems and integer programming techniques;
• left-Stochastic matrices, one is able to model faulty behaviour and other forms of quantitative
information about software systems in a probabilistic way; in particular, this introduces the notion of
a probabilistic contract in software design.
Such an increase in Alloy’s capabilities strengthens its position in the area of formal methods for software
design, in particular towards becoming a quantitative formal method.
This dissertation explores the motivation and importance behind quantitative analysis by studying and
establishing theoretical foundations through categorial approaches to accomplish such reasoning in Alloy.
This starts by reviewing the required tools to support such groundwork and proceeds to the design and
implementation of such a quantitative Alloy extension.
This project aims to promote the evolution of quantitative formal methods by successfully achieving
quantitative abstractions in Alloy, extending its support to these concepts and implementing them in the
Alloy Analyzer.Quando se depara com um novo problema que precisa de ser resolvido, ao abstrair dos seus detalhes
associados de forma simples e concisa recorrendo a métodos formais, é possível compreender melhor
o assunto em questão. Alloy (Jackson, 2012), uma linguagem de especificação declarativa baseada em
lógica relacional, é um exemplo de uma ferramenta de modelação eficaz, possibilitando especificações
de alto-nível de sistemas potencialmente bastante complexos. Contudo, em conjunto com a informação
irrelevante, os dados mensuráveis são muitas vezes também perdidos na abstração, tornando-a não tão
adequada para certas situações.
O Alloy Analyzer representa as relações sujeitas a análise através de matrizes Booleanas. Ao estender
este tipo de estrutura para:
• matrizes numéricas, em N0
, é possível lidar com multirelações, i.e., relações cujos arcos são
pesados; cada tuplo é consequentemente associado a um número natural, o que proporciona uma
linha de raciocínio semelhante à de técnicas de problemas de otimização e de programação inteira;
• matrizes estocásticas, permitindo a modelação de comportamento defeituoso e de outros tipos de
informação quantitativa de sistemas de software probabilisticamente; em particular, é introduzida a
noção de contrato probabilístico em design de software.
Tal aumento às capacidades do Alloy, fortalece a sua posição na área de métodos formais para design de
software, em particular, a caminho de se tornar um método formal quantitativo.
Esta dissertação explora a motivação e a importância subjacente à análise quantitativa, a partir do estudo
e consolidação dos fundamentos teóricos através de abordagens categóricas de forma a conseguir suportar
esse tipo de raciocínio em Alloy. Inicialmente, as ferramentas imprescindíveis para assegurar tal base são
analisadas, passando de seguida ao planeamento e posterior implementação de tal extensão quantitativa
do Alloy.
Este projecto pretende promover a evolução dos métodos formais quantitativos através da concretização de
abstracção quantitativa em Alloy, estendendo a sua base para suportar estes conceitos e assim implementá los no Alloy Analyzer