English
Related papers

Related papers: Towards a General Framework for Formal Reasoning a…

200 papers

Software verification is a complex problem, and verification tools need significant tuning to achieve high performance. Due to this, many verifiers choose to specialize on reachability properties, or invest the time to implement known…

Programming Languages · Computer Science 2025-01-28 Dirk Beyer , Marek Jankola , Marian Lingsch-Rosenfeld , Tian Xia , Xiyue Zheng

Proponents of software verification have argued that simpler code is easier to verify: that is, that verification tools issue fewer false positives and require less human intervention when analyzing simpler code. We empirically validate…

Software Engineering · Computer Science 2023-11-01 Kobi Feldman , Martin Kellogg , Oscar Chaparro

Algorithms like those for differentiating functional expressions manipulate the syntactic structure of mathematical expressions in a mathematically meaningful way. A formalization of such an algorithm should include a specification of its…

Logic in Computer Science · Computer Science 2013-08-06 William M. Farmer

Dynamic code, i.e., code that is created or modified at runtime, is ubiquitous in today's world. The behavior of dynamic code can depend on the logic of the dynamic code generator in subtle and non-obvious ways, with significant security…

Cryptography and Security · Computer Science 2019-10-31 Jesse Bartels , Jon Stephens , Saumya Debray

While recent progress in quantum hardware open the door for significant speedup in certain key areas (cryptography, biology, chemistry, optimization, machine learning, etc), quantum algorithms are still hard to implement right, and the…

Programming Languages · Computer Science 2022-04-11 Christophe Chareton , Sébastien Bardin , Dongho Lee , Benoît Valiron , Renaud Vilmart , Zhaowei Xu

This paper elaborates the use of static source code analysis in the context of data protection. The topic is important for software engineering in order for software developers to improve the protection of personal data during software…

Software Engineering · Computer Science 2020-03-24 Kalle Hjerppe , Jukka Ruohonen , Ville Leppänen

Verifying a real-world program's functional correctness can be decomposed into (1) a refinement proof showing that the program implements a more abstract high-level program and (2) an algorithm correctness proof at the high level.…

Programming Languages · Computer Science 2025-08-22 Shushu Wu , Xiwei Wu , Qinxiang Cao

Formal verification of a software system relies on formalising the requirements to which it should adhere, which can be challenging. While formalising requirements from natural-language, we have dependencies that lead to duplication of…

Software Engineering · Computer Science 2022-02-14 Matt Luckcuck , Marie Farrell , Oisín Sheridan

We present a Coq formalisation of the small-step operational semantics of Jafun, a small Java-like language with classes. This format of semantics makes it possible to naturally specify and prove invariants that should hold at each…

Logic in Computer Science · Computer Science 2018-08-17 Aleksy Schubert , Jacek Chrząszcz

JSON (JavaScript Object Notation) is a data encoding that allows structured data to be used in a standardized and straightforward manner across systems. Schemas for JSON-formatted data can be constructed using the JSON Schema standard,…

Programming Languages · Computer Science 2025-08-13 Jack Stanek , Daniel Killough

Computer programs may go wrong due to exceptional behaviors, out-of-bound array accesses, or simply coding errors. Thus, they cannot be blindly trusted. Scientific computing programs make no exception in that respect, and even bring…

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

Variational execution is a novel dynamic analysis technique for exploring highly configurable systems and accurately tracking information flow. It is able to efficiently analyze many configurations by aggressively sharing redundancies of…

Programming Languages · Computer Science 2018-09-13 Chu-Pan Wong , Jens Meinicke , Lukas Lazarek , Christian Kästner

We want to verify the correctness of optimization phases in the GraalVM compiler, which consist of many thousands of lines of complex Java code performing sophisticated graph transformations. We have built high-level models of the data…

Logic in Computer Science · Computer Science 2022-12-06 Mark Utting , Brae J. Webb , Ian J. Hayes

The goal of this lecture is to show how modern theorem provers---in this case, the Coq proof assistant---can be used to mechanize the specification of programming languages and their semantics, and to reason over individual programs and…

Programming Languages · Computer Science 2010-10-28 Xavier Leroy

Recently, several approaches to updating knowledge bases modeled as extended logic programs have been introduced, ranging from basic methods to incorporate (sequences of) sets of rules into a logic program, to more elaborate methods which…

Artificial Intelligence · Computer Science 2007-05-23 T. Eiter , M. Fink , G. Sabbatini , H. Tompits

This paper explores the idea of using defunctionalization as a proof technique for higher-order programs. Defunctionalization builds on substituting functional values by a first-order representation. Thus, its interest is that one can use…

Logic in Computer Science · Computer Science 2019-05-22 Mário Pereira

Software testing uses wide range of different tools to enhance the complicated process of defining quality of the system under test. Formal Concept Analysis (FCA) provides us with algorithms of deriving formal ontology from a set of objects…

Software Engineering · Computer Science 2015-05-07 Fedor Strok

We study program refactoring while considering the language or even the programming paradigm as a parameter. We use typed functional programs, namely Haskell programs, as the specification medium for a corresponding refactoring framework.…

Programming Languages · Computer Science 2007-05-23 Ralf Laemmel

We introduce a novel approach for inferring natural preconditions from code. Our technique produces preconditions of high quality in terms of both correctness (modulo a test generator) and naturalness. Prior works generate preconditions…

Software Engineering · Computer Science 2024-08-20 Elizabeth Dinella , Shuvendu Lahiri , Mayur Naik