English
Related papers

Related papers: Pleasant Imperative Program Proofs with GallinaC

200 papers

Modeling structure and behavior of software systems plays a crucial role in the industrial practice of software engineering. As with other software engineering artifacts, software models are subject to evolution. Supporting modelers in…

Software Engineering · Computer Science 2026-01-21 Christof Tinnes , Alisa Welter , Sven Apel

We introduce isQ, a new software stack for quantum programming in an imperative programming language, also named isQ. The aim of isQ is to make the programmers write quantum programs as conveniently as possible. In particular: 1) The isQ…

Quantum Physics · Physics 2023-11-22 Jingzhe Guo , Huazhe Lou , Riling Li , Wang Fang , Junyi Liu , Peixun Long , Shenggang Ying , Mingsheng Ying

We present a one-fits-all programmatic approach to reason about a plethora of objectives on probabilistic programs. The first ingredient is to add a reward-statement to the language. We then define a program transformation applying a…

Programming Languages · Computer Science 2026-03-04 Philipp Schröer , Joost-Pieter Katoen

Probabilistic programming is an approach to reasoning under uncertainty by encoding inference problems as programs. In order to solve these inference problems, probabilistic programming languages (PPLs) employ different inference…

Programming Languages · Computer Science 2023-05-04 Daniel Lundén , Johannes Borgström , David Broman

Program verifiers for imperative languages such as C may be annotation-based, in which assertions and invariants are put into source files and then checked, or tactic-based, where proof scripts separate from programs are interactively…

Programming Languages · Computer Science 2023-10-27 Litao Zhou , Jianxing Qin , Qinshi Wang , Andrew W. Appel , Qinxiang Cao

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

High confidence in floating-point programs requires proving numerical properties of final and intermediate values. One may need to guarantee that a value stays within some range, or that the error relative to some ideal value is well…

Numerical Analysis · Computer Science 2008-01-04 Florent De Dinechin , Christoph Quirin Lauter , Guillaume Melquiond

Verification of C++ programs has seen considerable progress in several areas, but not for programs that use these languages' mathematical libraries. The reason is that all libraries in widespread use come with no guarantees about the…

Programming Languages · Computer Science 2022-06-23 Roberto Bagnara , Michele Chiari , Roberta Gori , Abramo Bagnara

Formal programming language semantics are imperative when trying to verify properties of programs in an automated manner. Using a new approach, Din et al. strengthen the ability of reasoning about concurrent programs by proposing a modular…

Programming Languages · Computer Science 2022-02-17 Niklas Heidler

Program obfuscation is a widely employed approach for software intellectual property protection. However, general obfuscation methods (e.g., lexical obfuscation, control obfuscation) implemented in mainstream obfuscation tools are heuristic…

Cryptography and Security · Computer Science 2017-10-04 Hui Xu , Yangfan Zhou , Yu Kang , Michael R. Lyu

There are many different probabilistic programming languages that are specialized to specific kinds of probabilistic programs. From a usability and scalability perspective, this is undesirable: today, probabilistic programmers are forced…

Programming Languages · Computer Science 2025-02-28 Sam Stites , John M. Li , Steven Holtzen

Declarative styles such as functional programming (FP) are rapidly gaining ground on their imperative cousins, including procedural and object-oriented programming. The shift is subtle because it is happening within the context of…

Software Engineering · Computer Science 2016-06-22 Morgan C. Benton , Nicole M. Radziwill

For all the successes in verifying low-level, efficient, security-critical code, little has been said or studied about the structure, architecture and engineering of such large-scale proof developments. We present the design, implementation…

Programming Languages · Computer Science 2023-07-10 Son Ho , Aymeric Fromherz , Jonathan Protzenko

Roundoff errors cannot be avoided when implementing numerical programs with finite precision. The ability to reason about rounding is especially important if one wants to explore a range of potential representations, for instance for FPGAs…

Numerical Analysis · Computer Science 2016-11-28 Victor Magron , George Constantinides , Alastair Donaldson

Methods for proving that concurrent software does not leak its secrets has remained an active topic of research for at least the past four decades. Despite an impressive array of work, the present situation remains highly unsatisfactory.…

Logic in Computer Science · Computer Science 2020-01-31 Daniel Schoepe , Toby Murray , Andrei Sabelfeld

Reasoning about real number expressions in a proof assistant is challenging. Several problems in theorem proving can be solved by using exact real number computation. I have implemented a library for reasoning and computing with complete…

Logic in Computer Science · Computer Science 2010-08-04 Russell O'Connor

Program logics are a powerful formal method in the context of program verification. Can we develop a counterpart of program logics in the context of language verification? This paper proposes language logics, which allow for statements of…

Programming Languages · Computer Science 2024-08-06 Matteo Cimini

Development of formal proofs of correctness of programs can increase actual and perceived reliability and facilitate better understanding of program specifications and their underlying assumptions. Tools supporting such development have…

Logic in Computer Science · Computer Science 2020-03-17 Talia Ringer , Karl Palmskog , Ilya Sergey , Milos Gligoric , Zachary Tatlock

Concolic testing mixes symbolic and concrete execution to generate test cases covering paths effectively. Its benefits have been demonstrated for more than 15 years to test imperative programs. Other programming paradigms, like logic…

Logic in Computer Science · Computer Science 2020-02-18 Sophie Fortz , Fred Mesnard , Etienne Payet , Gilles Perrouin , Wim Vanhoof , German Vidal

Teaching proofs is a crucial component of any undergraduate-level program that covers formal reasoning. We have developed a calculational reasoning format and refined it over several years of teaching a freshman-level course, "Logic and…

Logic in Computer Science · Computer Science 2023-11-16 Andrew T. Walter , Ankit Kumar , Panagiotis Manolios