English
Related papers

Related papers: Practical Deductive Verification of OCaml Programs…

200 papers

Static verification provides strong correctness guarantees for code; however, fully specifying programs for static verification is a complex, burdensome process for users. Gradual verification was introduced to make this process easier by…

Programming Languages · Computer Science 2025-07-21 Priyam Gupta

A syntax-directed formal system for the development of totally correct programs with respect to an unfair shared-state parallel while-language is proposed. The system can be understood as a compositional reformulation of the Owicki/Gries…

Formal Languages and Automata Theory · Computer Science 2024-04-26 Ketil Stølen

Verification problems of programs written in various paradigms (such as imperative, logic, concurrent, functional, and object-oriented ones) can be reduced to problems of solving Horn clause constraints on predicate variables that represent…

Programming Languages · Computer Science 2016-10-24 Hiroshi Unno , Sho Torii

A reliable technique for deductive program verification should be proven sound with respect to the semantics of the programming language. For each different language, the construction of a separate soundness proof is often a laborious…

Programming Languages · Computer Science 2021-08-05 Ximeng Li , Qianying Zhang , Guohui Wang , Zhiping Shi , Yong Guan

We describe a successful attempt to formally verify a simple genetic algorithm written in Java. To this end, we compare several formal verification tools designed for Java, and select Krakatoa as the most appropriate for the task. Based on…

Logic in Computer Science · Computer Science 2018-09-11 Dmitry Brizhinev , Rajeev Goré

We propose some slight additions to O-O languages to implement the necessary features for using Deductive Object Programming (DOP). This way of programming based upon the manipulation of the Production Tree of the Objects of Interest,…

Software Engineering · Computer Science 2007-05-23 Francois Colonna

A compiler consists of a sequence of phases going from lexical analysis to code generation. Ideally, the formal verification of a compiler should include the formal verification of each component of the tool-chain. An example is the…

Programming Languages · Computer Science 2023-06-22 Wendlasida Ouedraogo , Gabriel Scherer , Lutz Strassburger

We explore the possibility of accelerating the formal verification of classical programs with a quantum computer. A common source of security flaws stems from the existence of common programming errors like use after free, null-pointer…

Quantum Physics · Physics 2026-05-06 Sebastian Issel , Kilian Tscharke , Pascal Debus

Using the programming language Haskell, we introduce an implementation of propositional calculus, number theory, and a simple imperative language that can evaluate arithmetic and boolean expressions. Finally, we provide an implementation of…

Programming Languages · Computer Science 2021-12-28 Boro Sitnikovski

We show how to systematically implement an algorithm in any imperative or functional programming language. The method is based on the premise that it is easy to write down how an algorithm proceeds on a concrete input. This…

Software Engineering · Computer Science 2020-04-28 Maurice Chandoo

Implicit heterogeneous metaprogramming (a.k.a. offshoring) is an attractive approach for generating C with some correctness guarantees: generate OCaml code, where the correctness guarantees are easier to establish, and then map that code to…

Programming Languages · Computer Science 2022-11-09 Oleg Kiselyov

Probabilistic programming languages rely fundamentally on some notion of sampling, and this is doubly true for probabilistic programming languages which perform Bayesian inference using Monte Carlo techniques. Verifying samplers - proving…

Programming Languages · Computer Science 2023-04-27 Fredrik Dahlqvist , Alexandra Silva , William Smith

In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this…

Software Engineering · Computer Science 2023-06-02 Jesper Amilon , Zafer Esen , Dilian Gurov , Christian Lidström , Philipp Rümmer

Formal methods provide systematic and rigorous techniques for software development. We strongly believe that they must be taught in computer science curricula. In this paper we present the pedagogic rationale and the concrete implementation…

Logic in Computer Science · Computer Science 2021-11-17 Salwa Souaf , Frédéric Loulergue

Foundational verification considers the functional correctness of programming languages with formalized semantics and uses proof assistants (e.g., Coq, Isabelle) to certify proofs. The need for verifying complex programs compels it to…

Programming Languages · Computer Science 2025-07-08 Qiyuan Xu , David Sanan , Zhe Hou , Xiaokun Luan , Conrad Watt , Yang Liu

Applicative bisimulation is a coinductive technique to check program equivalence in higher-order functional languages. It is known to be sound, and sometimes complete, with respect to context equivalence. In this paper we show that…

Logic in Computer Science · Computer Science 2015-06-23 Ugo Dal Lago , Alessandro Rioli

This paper presents a formal approach to specify and verify object-oriented programs written in the `programming to interfaces' paradigm. Besides the methods to be invoked by its clients, an interface also declares a set of abstract…

Logic in Computer Science · Computer Science 2013-12-02 Jianhua Zhao , Xuandong LI

Cooperation between verification methods is crucial to tackle the challenging problem of software verification. The paper focuses on the verification of C programs using pointers and it formalizes a cooperation between static analyzers…

Programming Languages · Computer Science 2018-12-03 Bouillaguet Quentin , Bobot François , Sighireanu Mihaela , Yakobowski Boris

Contracts specifying a procedure's behavior in terms of pre- and postconditions are essential for scalable software verification, but cannot express any constraints on the events occurring during execution of the procedure. This…

Software Engineering · Computer Science 2022-11-22 Richard Bubel , Dilian Gurov , Reiner Hähnle , Marco Scaletta

The model of asynchronous programming arises in many contexts, from low-level systems software to high-level web programming. We take a language-theoretic perspective and show general decidability and undecidability results for asynchronous…

Formal Languages and Automata Theory · Computer Science 2023-06-22 Rupak Majumdar , Ramanathan S. Thinniyam , Georg Zetzsche
‹ Prev 1 3 4 5 6 7 10 Next ›