Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by Maria João Frade

2004

Type-based termination of recursive definitions

Authors
Barthe, G; Frade, MJ; Gimenez, E; Pinto, L; Uustalu, T;

Publication
MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE

Abstract
This paper introduces lambda<^>, a simply typed lambda calculus supporting inductive types and recursive function definitions with termination ensured by types. The system is shown to enjoy subject reduction, strong normalisation of typable terms and to be stronger than a related system in which termination is ensured by a syntactic guard condition. The system can, at will, be extended to support coinductive types and corecursive function definitions also.

1999

Constructor subtyping

Authors
Barthe, G; Frade, MJ;

Publication
PROGRAMMING LANGUAGES AND SYSTEMS

Abstract
Constructor subtyping is a form of subtyping in which an inductive type sigma is viewed as a subtype of another inductive type tau if tau has more constructors than sigma. As suggested in [5, 12], its (potential) uses include proof assistants and functional programming languages. In this paper, we introduce and study the properties of a simply typed lambda-calculus with record types and datatypes, and which supports record subtyping and constructor subtyping. In the first part of the paper, we show that the calculus is confluent and strongly normalizing. In the second part of the paper, we show that the calculus admits a well-behaved theory of canonical inhabitants, provided one adopts expansive extensionality rules, including eta-expansion, surjective pairing, and a suitable expansion rule for datatypes. Finally, in the third part of the paper, we extend our calculus with unbounded recursion and show that confluence is preserved.

2011

Rigorous Software Development - An Introduction to Program Verification

Authors
Almeida, JB; Frade, MJ; Pinto, JS; Sousa, SMd;

Publication
Undergraduate Topics in Computer Science

Abstract

2012

Verification conditions for single-assignment programs

Authors
Da Cruz, D; Frade, MJ; Pinto, JS;

Publication
Proceedings of the ACM Symposium on Applied Computing

Abstract
A mechanism for generating verification conditions (VCs) for the iteration-free fragment of an imperative language is fundamental in any deductive program verification system. In this paper we revisit symbolic execution, weakest preconditions, and bounded model checking as VC-generation mechanisms, and propose a uniform presentation of the corresponding sets of VCs, in terms of (logical encodings of) paths in the control-flow graph of a single-assignment form of the program under analysis. This allows us to compare the mechanisms, in particular with respect to the size of the generated formulas. © 2012 ACM.

2011

Verification conditions for source-level imperative programs

Authors
Frade, MJ; Pinto, JS;

Publication
Computer Science Review

Abstract
This paper is a systematic study of verification conditions and their use in the context of program verification. We take Hoare logic as a starting point and study in detail how a verification conditions generator can be obtained from it. The notion of program annotation is essential in this process. Weakest preconditions and the use of updates are also studied as alternative approaches to verification conditions. Our study is carried on in the context of a While language. Important extensions to this language are considered toward the end of the paper. We also briefly survey modern program verification tools and their approaches to the generation of verification conditions. © 2011 Elsevier Inc.

2016

A Single-Assignment Translation for Annotated Programs

Authors
Lourenço, CB; Frade, MJ; Pinto, JS;

Publication
CoRR

Abstract

  • 3
  • 3