Jorge Sousa Pinto

dblp:54/5302 · DBLP profile ↗
← Back
29ranked-venue papers
2as first author
5since 2021 · last 2026
0000-0002-0892-3577ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 21 · 1 first-author · 5 since 2021Theory of computation · 6 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 3Artificial intelligence and machine learning · 2Human-computer interaction and ubiquitous computing · 1
YearPublicationVenuePosition
2026 Auto-active verification of distributed systems and specification refinements with Why3-do
abstract
In this paper, we introduce a novel approach for rigorously verifying safety properties of state machine specifications. Our method leverages an auto-active verifier and centers around the use of action functions annotated with contracts. These contracts facilitate inductive invariant checking, ensuring correctness during system execution. Our approach is further supported by the Why3-do library, which extends the Why3 tool's capabilities to verify concurrent and distributed algorithms using state machines. Two distinctive features of Why3-do are: (i) it supports specification refinement through refinement mappings, enabling hierarchical reasoning about distributed algorithms; and (ii) it can be easily extended to make verifying specific classes of systems more convenient. In particular, the library contains models allowing for message-passing algorithms to be described with programmed handlers , assuming different network semantics. A gallery of examples, all verified with Why3 using SMT solvers as proof tools, is also described in the paper. It contains several auto-actively verified concurrent and distributed algorithms, including the Paxos consensus algorithm.
Cláudio Belo Lourenço, Jorge Sousa Pinto
Sci. Comput. Program.2
2023 A verified VCGen based on dynamic logic: An exercise in meta-verification with Why3
Maria João Frade, Jorge Sousa Pinto
J. Log. Algebraic Methods Program.2
2022 Why3-do: The Way of Harmonious Distributed System Proofs
abstract
Abstract We study principles and models for reasoning inductively about properties of distributed systems, based on programmed atomic handlers equipped with contracts. We present the Why3-do library, leveraging a state of the art software verifier for reasoning about distributed systems based on our models. A number of examples involving invariants containing existential and nested quantifiers (including Dijsktra’s self-stabilizing systems) illustrate how the library promotes contract-based modular development, abstraction barriers, and automated proofs.
Cláudio Belo Lourenço, Jorge Sousa Pinto
ESOP2
2022 A tribute to José Manuel Valença
José N. Oliveira, Jorge Sousa Pinto, Luís Soares Barbosa, Pedro Rangel Henriques
J. Log. Algebraic Methods Program.2
2021 A deductive reasoning approach for database applications using verification conditions
Md. Imran Alam, Raju Halder, Jorge Sousa Pinto
J. Syst. Softw.3
2020 Real-time MTL with durations as SMT with applications to schedulability analysis
abstract
This paper introduces a synthesis procedure for the satisfiability problem of RMTL- ∫ formulas as SAT solving modulo theories. RMTL- ∫ is a real-time version of metric temporal logic (MTL) extended by a duration quantifier allowing to measure time durations. For any given formula, a SAT instance modulo the theory of arrays, uninterpreted functions with equality and non-linear real-arithmetic is synthesized and may then be further investigated using appropriate SMT solvers. We show the benefits of using RMTL- ∫ with the given SMT encoding on a diversified set of examples that include in particular its application in the area of schedulability analysis. Therefore, we introduce a simple language for formalizing schedulability problems and show how to formulate timing constraints as RMTL- ∫ formulas. Our practical evaluation based on our synthesis and Z3 as back-end SMT solver also shows the feasibility of the overall approach.
André de Matos Pedro, Martin Leucker, David Pereira, Jorge Sousa Pinto
TASE4
2018 A Generalized Approach to Verification Condition Generation
abstract
In a world where many human lives depend on the correct behavior of software systems, program verification assumes a crucial role. Many verification tools rely on an algorithm that generates verification conditions (VCs) from code annotated with properties to be checked. In this paper, we revisit two major methods that are widely used to produce VCs: predicate transformers (used mostly by deductive verification tools) and the conditional normal form transformation (used in bounded model checking of software). We identify three different aspects in which the methods differ (logical encoding of control flow, use of contexts, and semantics of asserts), and show that, since they are orthogonal, they can be freely combined. This results in six new hybrid verification condition generators (VCGens), which together with the fundamental methods constitute what we call the VCGen cube. We consider two optimizations implemented in major program verification tools and show that each of them can in fact be applied to an entire face of the cube, resulting in optimized versions of the six hybrid VCGens. Finally, we compare all VCGens empirically using a number of benchmarks. Although the results do not indicate absolute superiority of any given method, they do allow us to identify interesting patterns.
Cláudio Belo Lourenço, Maria João Frade, Shin Nakajima 0001, Jorge Sousa Pinto
COMPSAC (1)4
2018 K-Taint: An Executable Rewriting Logic Semantics for Taint Analysis in the K Framework
abstract
The K framework is a rewrite logic-based framework for defining programming language semantics suitable for formal reasoning about programs and programming languages. In this paper, we present K-Taint, a rewriting logic-based executable semantics in the K framework for taint analysis of an imperative programming language. Our K semantics can be seen as a sound approximation of programs semantics in the corresponding security type domain. More specifically, as a foundation to this objective, we extend to the case of taint analysis the semantically sound flow-sensitive security type system by Hunt and Sands's, considering a support to the interprocedural analysis as well. With respect to the existing methods, K-Taint supports context- and flow-sensitive analysis, reduces false alarms, and provides a scalable solution. Experimental evaluation on several benchmark codes demonstrates encouraging results as an improvement in the precision of the analysis.
Md. Imran Alam, Raju Halder, Harshita Goswami, Jorge Sousa Pinto
ENASE4
2018 Runtime verification of autopilot systems using a fragment of MTL- $${\int }$$ ∫
André de Matos Pedro, Jorge Sousa Pinto, David Pereira, Luís Miguel Pinho
Int. J. Softw. Tools Technol. Transf.2
2016 Formalizing Single-Assignment Program Verification: An Adaptation-Complete Approach
Cláudio Belo Lourenço, Maria João Frade, Jorge Sousa Pinto
ESOP3
2016 Formal Verification With Frama-C: A Case Study in the Space Software Domain
abstract
With the increasing importance of software in the aerospace field, as evidenced by its growing size and complexity, a rigorous and reliable software verification and validation process must be applied to ensure conformance with the strict requirements of this software. Although important, traditional validation activities such as testing and simulation can only provide a partial verification of behavior in critical real-time software systems, and thus, formal verification is an alternative to complement these activities. Two useful formal software verification approaches are deductive verification and abstract interpretation, which analyze programs statically to identify defects. This paper explores abstract interpretation and deductive verification by employing Frama-C's value analysis and Jessie plug-ins to verify embedded aerospace control software. The results indicate that both approaches can be employed in a software verification process to make software more reliable.
Rovedy Aparecida Busquim e Silva, Nanci Naomi Arai, Luciana Akemi Burgareli, José Maria Parente de Oliveira, Jorge Sousa Pinto
IEEE Trans. Reliab.5
2015 Monitoring for a Decidable Fragment of MTL-∫
André de Matos Pedro, David Pereira, Luís Miguel Pinho, Jorge Sousa Pinto
RV4
2014 A Bounded Model Checker for SPARK Programs
Cláudio Belo Lourenço, Maria João Frade, Jorge Sousa Pinto
ATVA3
2014 CAOVerif: An open-source deductive verification platform for cryptographic software implementations
José Bacelar Almeida, Manuel Barbosa, Jean-Christophe Filliâtre, Jorge Sousa Pinto, Bárbara Vieira
Sci. Comput. Program.4
2013 Interactive Verification of Safety-Critical Software
abstract
A central issue in program verification is the generation of verification conditions (VCs): proof obligations which, if successfully discharged, guarantee the correctness of a program vis-à-vis a given specification. While the basic theory of program verification has been around since the 1960s, the late 1990s saw the advent of practical tools for the verification of realistic programs, and research in this area has been very active since then. Automated theorem provers have contributed decisively to these developments. This paper establishes a basis for the generation of verification conditions combining forward and backward reasoning, for programs consisting of mutually-recursive procedures annotated with contracts and loop invariants. We introduce also a visual technique to verify a program, in an interactive way, using Verification Graphs (VG), where a VG is a Control Flow Graph (CFG) whose edges are labeled with contracts (pre- and postconditions). This technique intends to help a software engineer to find statements that are not valid with respect to the program's specification.
Daniela Carneiro da Cruz, Pedro Rangel Henriques, Jorge Sousa Pinto
COMPSAC3
2013 Formal verification of side-channel countermeasures using self-composition
José Bacelar Almeida, Manuel Barbosa, Jorge Sousa Pinto, Bárbara Vieira
Sci. Comput. Program.3
2012 Using Term Rewriting to Solve Bit-Vector Arithmetic Problems - (Poster Presentation)
Iago Abal, Alcino Cunha, Joe Hurd, Jorge Sousa Pinto
SAT4
2012 Assertion-based slicing and slice graphs
abstract
Abstract This paper revisits the idea of slicing programs based on their axiomatic semantics, rather than using criteria based on control/data dependencies. We show how the forward propagation of preconditions and the backward propagation of postconditions can be combined in a new slicing algorithm that is more precise than the existing specification-based algorithms. The algorithm is based on (a) a precise test for removable statements, and (b) the construction of aslice graph, a program control flow graph extended with semantic labels and additional edges that “short-circuit” removable commands. It improves on previous approaches in two aspects: it does not fail to identify removable commands; and it produces the smallest possible slice that can be obtained (in a sense that will be made precise). Iteration is handled through the use of loop invariants and variants to ensure termination. The paper also discusses in detail applications of these forms of slicing, including the elimination of (conditionally) unreachable and dead code, and compares them to other related notions.
José Bernardo Barros, Daniela Carneiro da Cruz, Pedro Rangel Henriques, Jorge Sousa Pinto
Formal Aspects Comput.4
2010 Model-Checking Temporal Properties of Real-Time HTL Programs
Joel Carvalho, Jorge Sousa Pinto, Simão Melo de Sousa
ISoLA (2)3
2010 Contract-Based Slicing
Daniela Carneiro da Cruz, Pedro Rangel Henriques, Jorge Sousa Pinto
ISoLA (1)3
2010 Contract-Based Slicing Helps on Safety Reuse
abstract
In this poster we describe a work in progress aimed at using a variant of specification-based slicing to improve the reuse of annotated software components, developed under the so called design-by-contract approach. We have named this variant as contract-based because we use the annotations, more precisely the pre and post-conditions, to slice programs intra and inter-procedures. The idea, expressed in the poster, is to take the pre-condition of the reused annotated component as slicing criterion, and slice backward the program where the component is called. In that way, we can isolate the statements that have influence on the variables involved on the pre-condition and check if it is preserved by that invocation, or not.
Sergio Areias, Daniela Carneiro da Cruz, Jorge Sousa Pinto
ICPC3
2010 Assertion-based Slicing and Slice Graphs
abstract
This paper revisits the idea of slicing programs based on their axiomatic semantics, rather than using criteria based on control/data dependencies. We show how the forward propagation of preconditions and the backward propagation of post conditions can be combined in a new slicing algorithm that is more precise than the existing specification-based algorithms. The algorithm is based on (i) a precise test for removable statements, and (ii) the construction of a slice graph, a program control flow graph extended with semantic labels. It improves on previous approaches in two aspects: it does not fail to identify removable commands; and it produces the smallest possible slice that can be obtained (in a sense that will be made precise). The paper also reviews in detail, through examples, the ideas behind the use of preconditions and post conditions for slicing programs.
José Bernardo Barros, Daniela Carneiro da Cruz, Pedro Rangel Henriques, Jorge Sousa Pinto
SEFM4
2009 Verifying Cryptographic Software Correctness with Respect to Reference Implementations
José Bacelar Almeida, Manuel Barbosa, Jorge Sousa Pinto, Bárbara Vieira
FMICS3
2008 Visual Programming with Interaction Nets
Abubakar Hassan, Ian Mackie, Jorge Sousa Pinto
Diagrams3
2005 Point-free Program Transformation
Alcino Cunha, Jorge Sousa Pinto
Fundam. Informaticae2
2002 Encoding Linear Logic with Interaction Combinators
Ian Mackie, Jorge Sousa Pinto
Inf. Comput.2
2001 Parallel Evaluation of Interaction Nets with MPINE
Jorge Sousa Pinto
RTA1
2000 Sequential and Concurrent Abstract Machines for Interaction Nets
Jorge Sousa Pinto
FoSSaCS1
1996 Using Internet technology for course support
José Eduardo Pina Miranda, Jorge Sousa Pinto
ITiCSE2