English
Related papers

Related papers: Refining interfaces: the case of the B method

200 papers

Toman et al. have proposed a type system for automatic verification of low-level programs, which combines ownership types and refinement types to enable strong updates of refinement types in the presence of pointer aliases. We extend their…

Programming Languages · Computer Science 2023-12-12 Izumi Tanaka , Ken Sakayori , Naoki Kobayashi

Precondition inference is a non-trivial problem with important applications in program analysis and verification. We present a novel iterative method for automatically deriving preconditions for the safety and unsafety of programs. Each…

Programming Languages · Computer Science 2023-06-22 Bishoksan Kafle , Graeme Gange , Peter J. Stuckey , Peter Schachte , Harald Sondergaard

Formal verification techniques are widely used for detecting design flaws in software systems. Formal verification can be done by transforming an already implemented source code to a formal model and attempting to prove certain properties…

Software Engineering · Computer Science 2017-08-28 Gyula Sallai , Ákos Hajdu , Tamás Tóth , Zoltán Micskei

In this paper, we show a security engineering process based on a formal notion of refinement fully formalized in the proof assistant Isabelle. This Refinement-Risk Cycle focuses on attack analysis and security refinement supported by…

Cryptography and Security · Computer Science 2020-01-27 Florian Kammüller

Tool-assisted analysis of software systems and convenient guides to practise the formal methods are still motivating challenges. This article addresses these challenges. We ex periment on analysing a formal specification from multiple…

Software Engineering · Computer Science 2016-11-25 Christian Attiogbe

In a traditional formal development process, e.g. using the B method, the informal user requirements are (manually) translated into a global abstract formal specification. This translation is especially difficult to achieve. The Event-B…

Software Engineering · Computer Science 2016-06-08 Thomas Fayolle , Marc Frappier , Régine Laleau , Frédéric Gervais

Model checking temporal properties of software is algorithmically hard. To be practically feasible, it usually requires the creation of simpler, abstract models of the software, over which the properties are checked. However, creating…

Formal Languages and Automata Theory · Computer Science 2025-03-17 Jesper Amilon , Dilian Gurov

Software engineering concepts and processes are worthy of formal study; and yet we seldom formalize them. This "research ideas" article explores what a theory of software engineering could and should look like. Software engineering research…

Software Engineering · Computer Science 2025-02-25 Bertrand Meyer

We present an abstraction and refinement methodology for the automated controller synthesis to enforce general predefined specifications. The designed controllers require quantized (or symbolic) state information only and can be interfaced…

Optimization and Control · Mathematics 2017-09-21 Gunther Reissig , Alexander Weber , Matthias Rungger

This paper presents a theory for the refinement of shared-memory concurrent algorithms from specifications. We augment pre and post condition specifications with Jones' rely and guarantee conditions, all of which are encoded as commands…

Logic in Computer Science · Computer Science 2023-09-12 Ian J. Hayes , Larissa A. Meinicke , Patrick A. Meiring

Formal verification via theorem proving enables the expressive specification and rigorous proof of software correctness, but it is difficult to scale due to the significant manual effort and expertise required. While Large Language Models…

Software Engineering · Computer Science 2025-10-30 Minghai Lu , Zhe Zhou , Danning Xie , Songlin Jia , Benjamin Delaware , Tianyi Zhang

Refinement types are types equipped with predicates that specify preconditions and postconditions of underlying functional languages. We propose a general semantic construction of dependent refinement type systems from underlying type…

Logic in Computer Science · Computer Science 2020-10-19 Satoshi Kura

Modularity is the fundamental aspect of modern software engineering, however many advanced modularity techniques requires prospective technologies as part of development and operation process. In this paper, we present Refinable Function,…

Programming Languages · Computer Science 2021-09-15 Hiun Kim

We introduce Refinement Reflection, a new framework for building SMT-based deductive verifiers. The key idea is to reflect the code implementing a user-defined function into the function's (output) refinement type. As a consequence, at uses…

Programming Languages · Computer Science 2019-07-16 Niki Vazou , Anish Tondwalkar , Vikraman Choudhury , Ryan G. Scott , Ryan R. Newton , Philip Wadler , Ranjit Jhala

This dissertation introduces executable refinement types, which refine structural types by semi-decidable predicates, and establishes their metatheory and accompanying implementation techniques. These results are useful for undecidable type…

Programming Languages · Computer Science 2014-03-14 Kenneth Knowles

A coverage type generalizes refinement types found in many functional languages with support for must-style underapproximate reasoning. Property-based testing frameworks are one particularly useful domain where such capabilities are useful…

Programming Languages · Computer Science 2025-09-03 Zhe Zhou , Benjamin Delaware , Suresh Jagannathan

The role played by counterexamples in standard system analysis is well known; but less common is a notion of counterexample in probabilistic systems refinement. In this paper we extend previous work using counterexamples to inductive…

Logic in Computer Science · Computer Science 2011-06-22 Ukachukwu Ndukwu , Annabelle McIver

Requirements are informal and semi-formal descriptions of the expected behavior of a system. They are usually expressed in the form of natural language sentences and checked for errors manually, e.g., by peer reviews. Manual checks are…

Logic in Computer Science · Computer Science 2018-04-30 Simone Vuotto

The complexity of modern software systems entails the need for reconfiguration mechanisms gov- erning the dynamic evolution of their execution configurations in response to both external stimulus or internal performance measures. Formally,…

Logic in Computer Science · Computer Science 2013-05-28 Alexandre Madeira , Manuel A. Martins , Luís Soares Barbosa

Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of particular use in dependently typed programming are indexed types that refine data by computationally useful…

Logic in Computer Science · Computer Science 2015-07-01 Robert Atkey , Patricia Johann , Neil Ghani