English
Related papers

Related papers: Practical Formal Verification for MLIR Programs

200 papers

We describe a system that simplifies the process of debugging programs produced by computer-aided parallelization tools. The system uses relative debugging techniques to compare serial and parallel executions in order to show where the…

Software Engineering · Computer Science 2007-05-23 Robert Hood , Gabriele Jost

Symbolic execution is an SMT-based software verification and testing technique. Symbolic execution requires tracking performed computations during software simulation to reason about branches in the software under test. The prevailing…

Software Engineering · Computer Science 2025-05-27 Sören Tempel , Tobias Brandt , Christoph Lüth , Christian Dietrich , Rolf Drechsler

The design and analysis of systems that combine computational behaviour with physical processes' continuous dynamics - such as movement, velocity, and voltage - is a famous, challenging task. Several theoretical results from programming…

Systems and Control · Electrical Eng. & Systems 2024-11-22 Pedro Mendes , Ricardo Correia , Renato Neves , José Proença

This paper summarises the results obtained by the author and his collaborators in a program logic approach to the verification of quantum programs, including quantum Hoare logic, invariant generation and termination analysis for quantum…

Quantum Physics · Physics 2018-08-01 Mingsheng Ying

Consider the following task taught in introductory optimization courses which addresses challenges articulated by the community at the intersection of (generative) AI and OR: generate the dual of a linear program. LLMs, being trained at…

Machine Learning · Computer Science 2025-05-29 Michael Klamkin , Arnaud Deza , Sikai Cheng , Haoruo Zhao , Pascal Van Hentenryck

In top-down multi-level design methodologies, design descriptions at higher levels of abstraction are incrementally refined to the final realizations. Simulation based techniques have traditionally been used to verify that such model…

Logic in Computer Science · Computer Science 2013-08-02 Salim Ismail Al-Akhras , Sofiène Tahar , Gabriela Nicolescu , Michel Langevin , Pierre Paulin

Common programming tools, like compilers, debuggers, and IDEs, crucially rely on the ability to analyse program code to reason about its behaviour and properties. There has been a great deal of work on verifying compilers and static…

Programming Languages · Computer Science 2019-07-15 Jan Stolarek , James Cheney

Bounded Model Checking is one the most successful techniques for finding bugs in program. However, for programs with loops iterating over large-sized arrays, bounded model checkers often exceed the limit of resources available to them. We…

Programming Languages · Computer Science 2016-08-22 Anushri Jana , Uday P. Khedker , Advaita Datar , R Venkatesh , C Niyas

Software testing plays a critical role in ensuring that systems behave as intended. However, existing automated testing approaches struggle to match the capabilities of human engineers due to key limitations such as test locality, lack of…

Software Engineering · Computer Science 2025-06-16 Kangping Xu , Yifan Luo , Yang Yuan , Andrew Chi-Chih Yao

Our topic is the use of machine learning to improve software by making choices which do not compromise the correctness of the output, but do affect the time taken to produce such output. We are particularly concerned with computer algebra…

Symbolic Computation · Computer Science 2020-04-16 Dorian Florescu , Matthew England

Both automatic program verification and program transformation are based on program analysis. In the past decade a number of approaches using various automatic general-purpose program transformation techniques (partial deduction,…

Software Engineering · Computer Science 2015-12-15 Alexei P. Lisitsa , Andrei P. Nemytykh

We present necessary and sufficient conditions for the termination of linear homogeneous programs. We also develop a complete method to check termination for this class of programs. Our complete characterization of termination for such…

Programming Languages · Computer Science 2014-09-11 Rachid Rebiha , Arnaldo Vieira Moura , Nadir Matringe

The emergence of the Industrial Internet results in an increasing number of complicated temporal interdependencies between automation systems and the processes to be controlled. There is a need for verification methods that scale better…

Software Engineering · Computer Science 2017-04-26 Eero Siivola , Seppo Sierla , Hannu Niemistö , Tommi Karhela , Valeriy Vyatkin

Verifying specifications for large-scale control systems is of utmost importance, but can be hard in practice as most formal verification methods can not handle high-dimensional dynamics. Contract theory has been proposed as a modular…

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

Formal verification provides mathematical guarantees that a software is correct. Design-level verification tools ensure software specifications are correct, but they do not expose defects in actual implementations. For this purpose,…

Software Engineering · Computer Science 2025-05-01 Paschal C. Amusuo , Parth V. Patil , Owen Cochell , Taylor Le Lievre , James C. Davis

We report on an effort to develop methodologies for formal verification of parts of the Multi-Purpose Daemon (MPD) parallel process management system. MPD is a distributed collection of communicating processes. While the individual…

Logic in Computer Science · Computer Science 2007-05-23 Olga Shumsky Matlin , William McCune , Ewing Lusk

This article describes the development and formal verification (proof of semantic preservation) of a compiler back-end from Cminor (a simple imperative intermediate language) to PowerPC assembly code, using the Coq proof assistant both for…

Logic in Computer Science · Computer Science 2009-11-14 Xavier Leroy

A comprehensive verification of parallel software imposes three crucial requirements on the procedure that implements it. Apart from accepting real code as program input and temporal formulae as specification input, the verification should…

Software Engineering · Computer Science 2013-04-01 Jiri Barnat , Petr Bauch

Our research is part of a wider project that aims to investigate and reason about the correctness of scheme-based source code transformations of Erlang programs. In order to formally reason about the definition of a programming language and…

Programming Languages · Computer Science 2020-08-19 Péter Bereczky , Dániel Horpácsi , Simon Thompson

Among areas of software engineering where AI techniques -- particularly, Large Language Models -- seem poised to yield dramatic improvements, an attractive candidate is Automatic Program Repair (APR), the production of satisfactory…

Software Engineering · Computer Science 2025-08-05 Li Huang , Ilgiz Mustafin , Marco Piccioni , Alessandro Schena , Reto Weber , Bertrand Meyer