English
Related papers

Related papers: Traits for Correct-by-Construction Programming

200 papers

Testing has become an indispensable activity of software development, yet writing good and relevant tests remains a quite challenging task. One well-known problem is that it often is impossible or unrealistic to test for every outcome, as…

Programming Languages · Computer Science 2017-08-18 Dimitri Racordon , Didier Buchs

This paper introduces a new technique for dynamic verification of component-based real-time systems based on statistical inference. Verifying such systems requires checking two types of properties: functional and real-time. For functional…

Software Engineering · Computer Science 2015-01-13 Chandrakana Nandi , Aurelien Monot , Manuel Oriol

Experience with lightweight formal methods suggests that programmers are willing to write specification if it brings tangible benefits to their usual development activities. This paper considers stronger specifications and studies whether…

Software Engineering · Computer Science 2013-08-14 Nadia Polikarpova , Carlo A. Furia , Yu Pei , Yi Wei , Bertrand Meyer

Dynamic arrays, also referred to as vectors, are fundamental data structures used in many programs. Modeling their semantics efficiently is crucial when reasoning about such programs. The theory of arrays is widely supported but is not…

Logic in Computer Science · Computer Science 2022-05-24 Ying Sheng , Andres Nötzli , Andrew Reynolds , Yoni Zohar , David Dill , Wolfgang Grieskamp , Junkil Park , Shaz Qadeer , Clark Barrett , Cesare Tinelli

This paper presents verification-guided development (VGD), a software engineering process we used to build Cedar, a new policy language for expressive, fast, safe, and analyzable authorization. Developing a system with VGD involves writing…

Consider the problem of learning, from non-experimental data, the causal (Markov equivalence) structure of the true, unknown causal Bayesian network (CBN) on a given, fixed set of (categorical) variables. This learning problem is known to…

Machine Learning · Statistics 2025-02-26 Hanti Lin , Jiji Zhang

Strategy languages enable programmers to compose rewrite rules into strategies and control their application. This is useful in programming languages, e.g., for describing program transformations compositionally, but also in automated…

Programming Languages · Computer Science 2023-04-28 Rongxiao Fu , Ornela Dardha , Michel Steuwer

We present Unit-B, a formal method inspired by Event-B and UNITY. Unit-B aims at the stepwise design of software systems satisfying safety and liveness properties. The method features the novel notion of coarse and fine schedules, a…

Software Engineering · Computer Science 2020-04-01 Simon Hudon , Thai Son Hoang , Jonathan S. Ostroff

This manuscript develops a new framework to analyze and design iterative optimization algorithms built on the notion of Integral Quadratic Constraints (IQC) from robust control theory. IQCs provide sufficient conditions for the stability of…

Optimization and Control · Mathematics 2021-05-27 Laurent Lessard , Benjamin Recht , Andrew Packard

Safety filters based on Control Barrier Functions (CBFs) have emerged as a practical tool for the safety-critical control of autonomous systems. These approaches encode safety through a value function and enforce safety by imposing a…

Robotics · Computer Science 2022-08-23 Sander Tonkens , Sylvia Herbert

Gradually-typed programming languages permit the incremental addition of static types to untyped programs. To remain sound, languages insert run-time checks at the boundaries between typed and untyped code. Unfortunately, performance…

Programming Languages · Computer Science 2020-10-13 Cameron Moy , Phúc C. Nguyen , Sam Tobin-Hochstadt , David Van Horn

Getting language models to reason correctly about code requires training on data where each reasoning step can be checked. Current synthetic Chain-of-Thought (CoT) training data often consists of plausible-sounding explanations generated by…

Software Engineering · Computer Science 2026-04-28 Shailja Thakur , Vaibhav Saxena , Rohan Kulkarni , Shivdeep Singh , Parameswaran Selvam , Hima Patel , Hiroshi Kanayama

Design by Constract (DBC) has influenced the development of formal specification languages that allow the mix of specification and implementation code, like Eiffel, the Java Modeling Language (JML) and Spec#. Meanwhile algebraic…

Software Engineering · Computer Science 2012-08-10 Nikolaos Triantafyllou , Petros Stefaneas , Panayiotis Frangos

Datasets can be biased due to societal inequities, human biases, under-representation of minorities, etc. Our goal is to certify that models produced by a learning algorithm are pointwise-robust to potential dataset biases. This is a…

Machine Learning · Computer Science 2021-10-12 Anna P. Meyer , Aws Albarghouthi , Loris D'Antoni

Can the execution of a software be perturbed without breaking the correctness of the output? In this paper, we devise a novel protocol to answer this rarely investigated question. In an experimental study, we observe that many perturbations…

Software Engineering · Computer Science 2018-07-06 Benjamin Danglot , Philippe Preux , Benoit Baudry , Martin Monperrus

Property-based testing (PBT) is a popular technique for automatically testing semantic properties of a program, specified as a pair of pre- and post-conditions. The efficacy of this approach depends on being able to quickly generate inputs…

Programming Languages · Computer Science 2025-10-07 Patrick LaFontaine , Zhe Zhou , Ashish Mishra , Suresh Jagannathan , Benjamin Delaware

Existing methods for verifying access control policies require the policy to be complete and fully determined before verification can proceed, but in practice policies are developed iteratively, composed from independently maintained…

Cryptography and Security · Computer Science 2026-03-16 Alexander V. Gheorghiu

Gradualizing the Calculus of Inductive Constructions (CIC) involves dealing with subtle tensions between normalization, graduality, and conservativity with respect to CIC. Recently, GCIC has been proposed as a parametrized gradual type…

Programming Languages · Computer Science 2022-09-05 Kenji Maillard , Meven Lennon-Bertrand , Nicolas Tabareau , Éric Tanter

Background: Contract-based Design (CbD) is a valuable methodology for software design that allows annotation of code and architectural components with contracts, thereby enhancing clarity and reliability in software development. It…

Software Engineering · Computer Science 2025-05-13 Fazli Faruk Okumus , Amra Ramic , Stefan Kugele

Verification conditions (VCs) are logical formulas whose satisfiability guarantees program correctness. We consider VCs in the form of constrained Horn clauses (CHC) which are automatically generated from the encoding of (an interpreter of)…

Logic in Computer Science · Computer Science 2016-07-18 Emanuele De Angelis , Fabio Fioravanti , Alberto Pettorossi , Maurizio Proietti