Clara Segura

dblp:01/4438 · DBLP profile ↗
← Back
12ranked-venue papers
0as first author
2since 2021 · last 2025
0000-0003-1403-2997ORCID · verified

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

Software engineering, systems software and programming languages · 10 · 2 since 2021Theory of computation · 6 · 1 since 2021
YearPublicationVenuePosition
2025 Verified Implementation of Associative Containers with Iterators Using Threaded Red-Black Trees
Jorge Blázquez, Manuel Montenegro, Clara Segura
iFM3
2023 Verification of mutable linear data structures and iterator-based algorithms in Dafny
abstract
We address the verification of mutable, heap-allocated abstract data types (ADTs) in Dafny, and their traversal via iterators. For this purpose, we devise a verification methodology that makes it possible to implement ADTs based on already existing ones, while maintaining proper encapsulation. Then, we apply this methodology to the specification and implementation of linear collections such as stacks, queues, deques, and lists with iterators. The approach introduced in this paper allows one to progressively refine some aspects of the specification such as iterator invalidation, so that clients of the library can reason about how structural changes to a list affect existing iterators. Finally, we extend our methodology to the verification of client code (i.e., code that makes use of the implemented ADTs) and identify the boilerplate conditions common to all methods that receive and manipulate ADTs.
Jorge Blázquez, Manuel Montenegro, Clara Segura
J. Log. Algebraic Methods Program.3
2020 Extending Liquid Types to Arrays
abstract
A liquid type is an ordinary Hindley-Milner type annotated with a logical predicate that states the properties satisfied by the elements of that type. Liquid types are a powerful tool for program verification, as programmers can use them to specify pre- and post conditions of their programs, whereas the predicates of intermediate variables and auxiliary functions are inferred automatically. Type inference is feasible in this context, as the logical predicates within liquid types are constrained to a quantifier-free logic to maintain decidability. In this article, we extend liquid types by allowing them to contain quantified properties on arrays so that they can be used to infer invariants on array-related programs (e.g., implementations of sorting algorithms). Although quantified logic is, in general, undecidable, we restrict properties on arrays to a decidable subset introduced by Bradley et al. We describe in detail the extended type system, the verification condition generator, and the iterative weakening algorithm for inferring invariants. After proving the correctness and completeness of these two algorithms, we apply them to find invariants on a set of algorithms involving array manipulations.
Manuel Montenegro, Susana Nieva, Ricardo Peña-Marí, Clara Segura
ACM Trans. Comput. Log.4
2017 Liquid Types for Array Invariant Synthesis
Manuel Montenegro, Susana Nieva, Ricardo Peña-Marí, Clara Segura
ATVA4
2015 Shape analysis in a functional language by using regular languages
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura
Sci. Comput. Program.3
2015 Space consumption analysis by abstract interpretation: Inference of recursive functions
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura
Sci. Comput. Program.3
2015 Space consumption analysis by abstract interpretation: Reductivity properties
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura
Sci. Comput. Program.3
2014 A resource semantics and abstract machine for Safe: A functional language with regions and explicit deallocation
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura
Inf. Comput.3
2013 Shape analysis in a functional language by using regular languages
abstract
Shape analysis is concerned with the compile-time determination of the 'shape' the heap may take at runtime, meaning by this the pointer chains that may happen within, and between, the data structures built by the program. This includes detecting alias and sharing between the program variables.
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura
PPDP3
2008 An Inference Algorithm for Guaranteeing Safe Destruction
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura
LOPSTR3
2008 A type system for safe memory management and its proof of correctness
abstract
We present a destruction-aware type system for the functional language Safe, which is a first-order eager language with facilities for programmer controlled destruction and copying of data structures. It provides also regions, i.e. disjoint parts of the heap, where the program allocates data structures. The runtime system does not need a garbage collector and all allocation/deallocation actions are done in constant time.
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura
PPDP3
2005 Non-determinism analyses in a parallel-functional language
abstract
The parallel-functional language Eden has a non-deterministic construct, the process abstraction merge, which interleaves a set of input lists to produce a single non-deterministic list. Its non-deterministic behaviour is a consequence of its reactivity: it immediately copies to the output list any value appearing at any of the input lists. This feature is essential in reactive systems and very useful in some deterministic parallel algorithms. The presence of non-determinism creates some problems such that some internal transformations in the compiler must be disallowed. The paper describes several non-determinism analyses developed for Eden aimed at detecting the parts of the program that, even in the presence of a process merge, still exhibit a deterministic behaviour. A polynomial cost algorithm which annotates Eden expressions is described in detail. A denotational semantics is described for Eden and the correctness of all the analyses is proved with respect to this semantics.
Ricardo Peña-Marí, Clara Segura
J. Funct. Program.2