Results

**1 - 4**of**4**### Practical Verification Condition Generation for a Bytecode Language

, 2015

"... Automatic program verifiers typically generate verification conditions from the program and discharge them with an automated theorem prover. An important consideration is the manner in which program code and invariants are expressed. We have developed a bytecode language (similar, in spirit, to Java ..."

Abstract
- Add to MetaCart

(Show Context)
Automatic program verifiers typically generate verification conditions from the program and discharge them with an automated theorem prover. An important consideration is the manner in which program code and invariants are expressed. We have developed a bytecode language (similar, in spirit, to Java bytecode) on which verification is performed. This serves as both an intermediate language for use within the compiler, and a binary format with which dependen-cies (e.g. for libraries) can be resolved. Our bytecode language is a three-address code with semi-structured control-flow. Program code and invariants are represented uniformly to ensure bytecode programs are compact. In this paper, we present our bytecode language and outline a verification condition generator based on a path-sensitive forward-propagation algorithm. 1

### Departamento de Ciência de Computadores Laboratório de Inteligência Artificial e Ciência de Computadores

, 2009

"... The minimal deterministic finite automaton is generally used to determine regular languages equality. Antimirov and Mosses proposed a rewrite system for deciding regular expressions equivalence of which Almeida et al. presented an improved variant. Hopcroft and Karp proposed an almost linear algorit ..."

Abstract
- Add to MetaCart

The minimal deterministic finite automaton is generally used to determine regular languages equality. Antimirov and Mosses proposed a rewrite system for deciding regular expressions equivalence of which Almeida et al. presented an improved variant. Hopcroft and Karp proposed an almost linear algorithm for testing the equivalence of two deterministic finite automata that avoids minimisation. In this paper we improve the best-case running time, present an extension of this algorithm to non-deterministic finite automaton, and establish a relationship between this algorithm and the one proposed in Almeida et al. We also present some experimental comparative results. All these algorithms are closely related with the recent coalgebraic approach to automata proposed by Rutten. 1

### Reflections on Verifying Software with Whiley

, 2013

"... An ongoing challenge for computer science is the development of a tool which automatically verifies programs meet their specifications, and are free from runtime errors such as divide-byzero, array out-of-bounds and null dereferences. Several impressive systems have been developed to this end, such ..."

Abstract
- Add to MetaCart

(Show Context)
An ongoing challenge for computer science is the development of a tool which automatically verifies programs meet their specifications, and are free from runtime errors such as divide-byzero, array out-of-bounds and null dereferences. Several impressive systems have been developed to this end, such as ESC/Java and Spec#, which build on existing programming languages (e.g. Java, C#). Unfortunately, such languages were not designed for this purpose and this significantly hinders the development of practical verification tools for them. For example, soundness of verification in these tools is compromised. We have developed a programming language specifically designed for verification, called Whiley, and an accompanying verifying compiler. In this paper, we reflect on a number of challenges we have encountered in developing a practical system. 1

### Decision Algorithms for Kleene Algebra with Tests and Hoare Logic

, 2012

"... I would like to thank my supervisors, professors Nelma Moreira and Sabine Broda, for their guidance, support and dedication over the last months. I would also like to thank David Pereira for all the fruitful discussions on Kleene algebra and for his help with the OCaml language. My final acknowledgm ..."

Abstract
- Add to MetaCart

(Show Context)
I would like to thank my supervisors, professors Nelma Moreira and Sabine Broda, for their guidance, support and dedication over the last months. I would also like to thank David Pereira for all the fruitful discussions on Kleene algebra and for his help with the OCaml language. My final acknowledgments go to my family for their continuous support. 3 Kleene algebra with tests (KAT) is an equational system for program verification, which is the combination of Boolean algebra (BA) and Kleene algebra (KA), the al-gebra of regular expressions. In particular, KAT subsumes the propositional fragment of Hoare logic (PHL) which is a formal system for the specification and verification of programs, and that is currently the base of most tools for checking program correct-ness. Both the equational theory of KAT and the encoding of PHL in KAT are known to be decidable. In spite of KAT’s success in dealing with several software verification tasks, there