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 José Nuno Oliveira

2008

'Galculator' Functional prototype of a galois-connection based proof assistant

Authors
Silva, PF; Oliveira, JN;

Publication
PPDP'08 - Proceedings of the 10th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming

Abstract
Galculator is the name of the prototype of a proof assistant of a special brand: it is solely based on the algebra of Galois connections. When combined with the pointfree transform and tactics such as the indirect equality principle, Galois connections offer a very powerful, generic device to tackle the complexity of proofs in program verification. The paper describes the architecture of the current Calculator prototype, which is implemented in Haskell in order to steer types as much as possible. The prospect of integrating the Galculator with other proof assistants such as e.g. Coq is also discussed. Copyright © 2008 ACM.

2010

Matrices as Arrows! A Biproduct Approach to Typed Linear Algebra

Authors
Macedo, HD; Oliveira, JN;

Publication
MATHEMATICS OF PROGRAM CONSTRUCTION, PROCEEDINGS

Abstract
Motivated by the need to formalize generation of fast running code for linear algebra applications, we show how an index-free, calculational approach to matrix algebra can be developed by regarding matrices as morphisms of a category with biproducts. This shifts the traditional view of matrices as indexed structures to a type-level perspective analogous to that of the pointfree algebra of programming. The derivation of fusion, cancellation and abide laws from the biproduct equations makes it easy to calculate algorithms implementing matrix multiplication, the kernel operation of matrix algebra, ranging from its divide-and-conquer version to the conventional, iterative one. From errant attempts to learn how particular products and coproducts emerge from biproducts, we not only rediscovered block-wise matrix combinators but also found a way of addressing other operations calculationally such as e.g. Gaussian elimination. A strategy for addressing vectorization along the same lines is also given.

2006

Pointfree factorization of operation refinement

Authors
Oliveira, JN; Rodrigues, CJ;

Publication
FM 2006: FORMAL METHODS, PROCEEDINGS

Abstract
The standard operation refinement ordering is a kind of "meet of opposites": non-determinism reduction suggests "smaller" behaviour while increase of definition suggests "larger" behaviour. Groves' factorization of this ordering into two simpler relations, one per refinement concern, makes it more mathematically tractable but is far from fully exploited in the literature. We present a pointfree theory for this factorization which is more agile and calculational than the standard set-theoretic approach. In particular, we show that factorization leads to a simple proof of structural refinement for arbitrary parametric types and exploit factor instantiation across different subclasses of (relational) operation. The prospect of generalizing the factorization to coalgebraic refinement is discussed.

2008

Transforming Data by Calculation

Authors
Oliveira, JN;

Publication
GENERATIVE AND TRANSFORMATIONAL TECHNIQUES IN SOFTWARE ENGINEERING II

Abstract
This paper addresses the foundations of data-model trans formation. A catalog of data mappings is presented which includes abstraction and representation relations and associated constraints. These are justified in an algebraic style via the pointfree-transform, a technique whereby predicates are lifted to binary relation terms (of the algebra of programming) in a two-level style encompassing both data and operations. This approach to data calculation, which also includes transformation of recursive data models into "flat" database schemes, is offered as alternative to standard database design from abstract models. The calculus is also used to establish a link between the proposed transformational style and bidirectional tenses developed in the context of the classical view-update problem.

2002

Special issue on Mathematics of Program Construction (MPC 2000) Preface

Authors
Backhouse, R; Oliveira, J;

Publication
SCIENCE OF COMPUTER PROGRAMMING

Abstract

2011

Preparing for a literature survey of software architecture using Formal Concept Analysis

Authors
Couto, L; Oliveira, JN; Ferreira, M; Bouwers, E;

Publication
CEUR Workshop Proceedings

Abstract
The scientific literature on Software Architecture (SA) is extensive and dense. With no preparation, surveying this literature can be a daunting task for novices in the field. This paper resorts to the technique of Formal Concept Analysis (FCA) in organizing and structuring such a body of knowledge. We start by surveying a set of 38 papers bearing in mind the following questions: "What are the most supported definitions of software architecture?", "What are the most popular research topics in software architecture?", "What are the most relevant quality attributes of a software architecture?" and "What are the topics that researchers point out as being more interesting to explore in the future?". To answer these questions we classify each paper with appropriate keywords and apply FCA to such a classification. FCA allows us to structure our survey in the form of lattices of concepts which give evidence of main relationships involved. We believe our results will help in guiding a more comprehensive, in-depth study of the field, to be carried out in the future.

  • 9
  • 11