English
Related papers

Related papers: A Tutorial on Using Dafny to Construct Verified So…

200 papers

Widely used complex code refactoring tools lack a solid reasoning about the correctness of the transformations they implement, whilst interest in proven correct refactoring is ever increasing as only formal verification can provide true…

Software Engineering · Computer Science 2017-08-25 Dániel Horpácsi , Judit Kőszegi , Zoltán Horváth

Autonomous systems -- such as self-driving cars, autonomous drones, and automated trains -- must come with strong safety guarantees. Over the past decade, techniques based on formal methods have enjoyed some success in providing strong…

Software Engineering · Computer Science 2020-06-17 Nathan Fulton , Nathan Hunt , Nghia Hoang , Subhro Das

The evolution of machine learning has increasingly prioritized the development of powerful models and more scalable supervision signals. However, the emergence of foundation models presents significant challenges in providing effective…

Artificial Intelligence · Computer Science 2024-11-19 Xinyan Guan , Yanjiang Liu , Xinyu Lu , Boxi Cao , Ben He , Xianpei Han , Le Sun , Jie Lou , Bowen Yu , Yaojie Lu , Hongyu Lin

The software patterns provide building blocks to the design and implementation of a software system, and try to make the software engineering to progress from experience to science. The software patterns were made famous because of the…

Logic in Computer Science · Computer Science 2021-10-26 Yong Wang

The development and application of formal methods is a long standing research topic within the field of computer science. One particular challenge that remains is the uptake of formal methods into industrial practices. This paper introduces…

Software Engineering · Computer Science 2014-03-25 Phillip James , Markus Roggenbach

Ensuring the correct functionality of systems software, given its safety-critical and low-level nature, is a primary focus in formal verification research and applications. Despite advances in verification tooling, conventional programmers…

Programming Languages · Computer Science 2025-04-04 Yiyuan Cao , Jiayi Zhuang , Houjin Chen , Jinkai Fan , Wenbo Xu , Zhiyi Wang , Di Wang , Qinxiang Cao , Yingfei Xiong , Haiyan Zhao , Zhenjiang Hu

Formally verifying properties of programs that manipulate arrays in loops is computationally challenging. In this paper, we focus on a useful class of such programs, and present a novel property-driven verification method that first infers…

Software Engineering · Computer Science 2017-10-05 Supratik Chakraborty , Ashutosh Gupta , Divyesh Unadkat

In this paper, we provide a comprehensive, hands-on tutorial on how to apply deductive verification to programs written in OCaml. In particular, we show how one can use the GOSPEL specification language and the Cameleer tool to conduct…

Logic in Computer Science · Computer Science 2024-07-23 Mário Pereira

Formal methods and testing are two important approaches that assist in the development of high quality software. For long time these approaches have been seen as competitors and there was very little interaction between the two communities.…

Software Engineering · Computer Science 2014-03-31 A. P. van der Meer , R. Kherrazi , M. Hamilton

This paper discusses a model-based approach to validate software requirements in agile development processes by simulation and in particular automated testing. The use of models as central development artifact needs to be added to the…

Software Engineering · Computer Science 2014-09-24 Jewgenij Botaschanjan , Markus Pister , Bernhard Rumpe

GitHub's Copilot generates code quickly. We investigate whether it generates good code. Our approach is to identify a set of problems, ask Copilot to generate solutions, and attempt to formally verify these solutions with Dafny. Our formal…

Software Engineering · Computer Science 2022-10-28 Dakota Wong , Austin Kothig , Patrick Lam

Ensuring that autonomous space robot control software behaves as it should is crucial, particularly as software failure in space often equates to mission failure and could potentially endanger nearby astronauts and costly equipment. To…

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

LLMs excel at reasoning, but validating their steps remains challenging. Formal verification offers a solution through mechanically checkable proofs. Interactive theorem provers (ITPs) dominate mathematical reasoning but require detailed…

Machine Learning · Computer Science 2026-02-03 Mantas Baksys , Stefan Zetzsche , Olivier Bouissou , Sean B. Holden

Classes on compiler technology are commonly found in Computer Science curricula, covering aspects of parsing, semantic analysis, intermediate transformations and target code generation. This paper reports on introducing certified…

Programming Languages · Computer Science 2019-06-28 Per Lindgren , Marcus Lindner , Nils Fitinghoff

Software model checking has experienced significant progress in the last two decades, however, one of its major bottlenecks for practical applications remains its scalability and adaptability. Here, we describe an approach to integrate…

Software Engineering · Computer Science 2019-07-19 Felipe R. Monteiro , Mikhail R. Gadelha , Lucas C. Cordeiro

Machine learning techniques often lack formal correctness guarantees, evidenced by the widespread adversarial examples that plague most deep-learning applications. This lack of formal guarantees resulted in several research efforts that aim…

Machine Learning · Computer Science 2024-06-11 Anahita Baninajjar , Ahmed Rezine , Amir Aminifar

We present the Foundational Cryptography Framework (FCF) for developing and checking complete proofs of security for cryptographic schemes within a proof assistant. This is a general-purpose framework that is capable of modeling and…

Programming Languages · Computer Science 2014-10-15 Adam Petcher , Greg Morrisett

Formal verification has emerged as a powerful approach to ensure the safety and reliability of deep neural networks. However, current verification tools are limited to only a handful of properties that can be expressed as first-order…

Artificial Intelligence · Computer Science 2022-03-03 Xuan Xie , Kristian Kersting , Daniel Neider

Recent developments in deep neural networks (DNNs) have led to their adoption in safety-critical systems, which in turn has heightened the need for guaranteeing their safety. These safety properties of DNNs can be proven using tools…

Logic in Computer Science · Computer Science 2024-02-14 Remi Desmartin , Omri Isac , Grant Passmore , Kathrin Stark , Guy Katz , Ekaterina Komendantskaya