English
Related papers

Related papers: Iteratively Composing Statically Verified Traits

200 papers

We demonstrate that traits are a natural way to support correctness-by-construction (CbC) in an existing programming language in the presence of traditional post-hoc verification (PhV). With Correctness-by-Construction, programs are…

Programming Languages · Computer Science 2022-04-13 Tobias Runge , Alex Potanin , Thomas Thüm , Ina Schaefer

Automated theorem provers are used in extended static checking, where they are the performance bottleneck. Extended static checkers are run typically after incremental changes to the code. We propose to exploit this usage pattern to improve…

Logic in Computer Science · Computer Science 2007-08-07 Radu Grigore , Michał Moskal

We consider the task of automated theorem proving, a key AI task. Deep learning has shown promise for training theorem provers, but there are limited human-written theorems and proofs available for supervised learning. To address this…

Logic in Computer Science · Computer Science 2020-11-02 Mingzhe Wang , Jia Deng

We introduce Meta-F*, a tactics and metaprogramming framework for the F* program verifier. The main novelty of Meta-F* is allowing the use of tactics and metaprogramming to discharge assertions not solvable by SMT, or to just simplify them…

Test or prove? These two approaches to software verification have long been presented as opposites. One is dynamic, the other static: a test executes the program, a proof only analyzes the program text. A different perspective is emerging,…

Software Engineering · Computer Science 2026-02-10 Li Huang , Bertrand Meyer , Manuel Oriol

Formal methods apply algorithms based on mathematical principles to enhance the reliability of systems. It would only be natural to try to progress from verification, model checking or testing a system against its formal specification into…

Software Engineering · Computer Science 2014-02-28 Gal Katz , Doron Peled

A program verifier is a tool that can be used to verify that a "contract" for a program holds - i.e. given a precondition the program guarantees that a given postcondition holds - by only working at the level of the annotated program. An…

Software Engineering · Computer Science 2014-06-12 Gudmund Grov

Verifying specifications for large-scale modern engineering systems can be a time-consuming task, as most formal verification methods are limited to systems of modest size. Recently, contract-based design and verification has been proposed…

Systems and Control · Electrical Eng. & Systems 2021-03-26 Miel Sharf , Bart Besselink , Karl Henrik Johansson

We present an automated reasoning framework for synthesizing recursion-free programs using saturation-based theorem proving. Given a functional specification encoded as a first-order logical formula, we use a first-order theorem prover to…

Logic in Computer Science · Computer Science 2024-03-01 Petra Hozzová , Laura Kovács , Chase Norman , Andrei Voronkov

We consider the problem of automated reasoning about dynamically manipulated data structures. The state-of-the-art methods are limited to the unfold-and-match (U+M) paradigm, where predicates are transformed via (un)folding operations…

Programming Languages · Computer Science 2014-07-24 Duc-Hiep Chu , Joxan Jaffar , Minh-Thai Trinh

Certified program synthesis (aka vericoding) is the process of automatically generating a program, its formal specification, and a machine-checkable proof of their alignment from a natural-language description. Two challenges make…

Software Engineering · Computer Science 2026-04-21 Yueyang Feng , Dipesh Kafle , Vladimir Gladshtein , Vitaly Kurin , George Pîrlea , Qiyuan Zhao , Peter Müller , Ilya Sergey

Instrumenting programs for performing run-time checking of properties, such as regular shapes, is a common and useful technique that helps programmers detect incorrect program behaviors. This is specially true in dynamic languages such as…

Programming Languages · Computer Science 2018-04-09 Maximiliano Klemen , Nataliia Stulova , Pedro Lopez-Garcia , José F. Morales , Manuel V. Hermenegildo

Formally verified compilers and formally verified static analyzers are a solution to the problem that certain industries face when they have to demonstrate to authorities that the object code they run truly corresponds to its source code…

Logic in Computer Science · Computer Science 2024-07-12 David Monniaux

A major challenge in applying machine learning to automated theorem proving is the scarcity of training data, which is a key ingredient in training successful deep learning models. To tackle this problem, we propose an approach that relies…

Logic in Computer Science · Computer Science 2020-06-22 Eser Aygün , Zafarali Ahmed , Ankit Anand , Vlad Firoiu , Xavier Glorot , Laurent Orseau , Doina Precup , Shibl Mourad

A number of flexible tactic-based logical frameworks are nowadays available that can implement a wide range of mathematical theories using a common higher-order metalanguage. Used as proof assistants, one of the advantages of such powerful…

Logic in Computer Science · Computer Science 2010-03-26 João Marcos

In this paper we demonstrate a technique for developing high performance applications with strong correctness guarantees. We use a theorem prover to derive a high-level specification of the application that includes correctness invariants…

Programming Languages · Computer Science 2024-06-18 Artjoms Sinkarovs , Thomas Koopman , Sven-Bodo Scholz

Verification proofs encode complete program behavior, yet we discard them after checking correctness. We present compiling by proving, a paradigm that transforms these proofs into optimized execution rules. By constructing All-Path…

Programming Languages · Computer Science 2025-09-29 Jianhong Zhao , Everett Hildenbrandt , Juan Conejero , Yongwang Zhao

In order to properly train a machine learning model, data must be properly collected. To guarantee a proper data collection, verifying that the collected data set holds certain properties is a possible solution. For example, guaranteeing…

Software Engineering · Computer Science 2021-08-26 Jorge López , Maxime Labonne , Claude Poletti

Proof by coupling is a classical technique for proving properties about pairs of randomized algorithms by carefully relating (or coupling) two probabilistic executions. In this paper, we show how to automatically construct such proofs for…

Programming Languages · Computer Science 2018-04-12 Aws Albarghouthi , Justin Hsu

A major challenge in applying machine learning to automated theorem proving is the scarcity of training data, which is a key ingredient in training successful deep learning models. To tackle this problem, we propose an approach that relies…

Artificial Intelligence · Computer Science 2021-04-08 Vlad Firoiu , Eser Aygun , Ankit Anand , Zafarali Ahmed , Xavier Glorot , Laurent Orseau , Lei Zhang , Doina Precup , Shibl Mourad
‹ Prev 1 2 3 10 Next ›