# Verified Calculations

@inproceedings{Leino2013VerifiedC, title={Verified Calculations}, author={K. Rustan M. Leino and Nadia Polikarpova}, booktitle={VSTTE}, year={2013} }

Calculational proofs--proofs by stepwise formula manipulation--are praised for their rigor, readability, and elegance. [...] Key Result The examples show that calculational proofs in Dafny compare favorably, in terms of readability and conciseness, with arguments written in other styles and proof languages. Expand

## Figures and Topics from this paper

## 29 Citations

Automating Theorem Proving with SMT

- Computer ScienceITP
- 2013

To show that proof tools rooted in SMT are growing up, this paper presents a series of examples that illustrate how theorems are expressed and proved using the SMT-based program verifier Dafny.

Automated Theorem Prover Assisted Program Calculations

- Computer ScienceIFM
- 2014

An automated theorem provers assisted program and formula transformation rules, which when coupled with the ability to extract context of a subformula, help in shortening and simplifying the derivations.

Untangling mechanized proofs

- Computer ScienceSLE
- 2020

A compiler that interleaves Coq’s output with the original proof script to produce interactive webpages that are complete, self-contained presentations of Coq proofs; and a new literate programming toolkit that allows authors to switch seamlessly between prose- and code-oriented views of the same sources, by translating back and forth between reStructuredText documents and literate Coq source files.

Theorem proving for all: equational reasoning in liquid Haskell (functional pearl)

- Computer ScienceProceedings of the 11th ACM SIGPLAN International Symposium on Haskell
- 2018

Concretely, this article shows how the equational proofs and derivations from Graham's textbook can be recast as proofs in Haskell (spoiler: they look essentially the same).

Theorem proving for all: equational reasoning in liquid Haskell (functional pearl)

- Computer ScienceHaskell@ICFP
- 2018

Concretely, this article shows how the equational proofs and derivations from Graham's textbook can be recast as proofs in Haskell (spoiler: they look essentially the same).

Functional Pearl: Theorem Proving for All (Equational Reasoning in Liquid Haskell)

- Computer ScienceArXiv
- 2018

Concretely, this article shows how the equational proofs and derivations from Graham's textbook can be recast as proofs in Haskell (spoiler: they look essentially the same).

Refinement reflection: complete verification with SMT

- Computer ScienceProc. ACM Program. Lang.
- 2018

Refinement Reflection is introduced, a new framework for building SMT-based deductive verifiers, and a proof-search algorithm called Proof by Logical Evaluation that uses techniques from model checking and abstract interpretation, to completely automate equational reasoning.

Towards Verified Handwritten Calculational Proofs - (Short Paper)

- Computer ScienceITP
- 2018

This paper presents the implementation of a proof-of-concept prototype that can formally verify handwritten calculational proofs without the need to learn the specific syntax of theorem provers.

Refinement Reflection (or, how to turn your favorite language into a proof assistant using SMT)

- Computer ScienceArXiv
- 2016

The approach is implemented in the Liquid Haskell system, thereby converting Haskell into an interactive proof assistant that is used to verify a variety of properties ranging from arithmetic properties of higher order, recursive functions to the Monoid, Applicative, Functor and Monad type class laws.

Some Ideas for Program Verifier Tactics

- Computer ScienceArXiv
- 2014

This work develops "tactics" as a form of program refactoring called DTacs, which enables users to encode common proof patterns as special programs called "tACTics" in an interactive theorem prover.

## References

SHOWING 1-10 OF 51 REFERENCES

Dafny: An Automatic Program Verifier for Functional Correctness

- Computer ScienceLPAR
- 2010

A tour of the language and verifier Dafny, which has been used to verify the functional correctness of a number of challenging pointer-based programs, is given and the full functional specification of the Schorr-Waite algorithm is shown.

Automating Induction with an SMT Solver

- Computer ScienceVMCAI
- 2012

A surprisingly simple tactic that has shown to be useful in verifying simple inductive theorems, like those that can occur during program verification, is shown.

The VeriFast program verifier

- Computer Science
- 2008

A separation-logic-based approach for the specification and verification of safety properties of pointer-manipulating imperative programs and an algorithm is described that prevents non-termination of the SMT solver while enabling reduction of any ground term.

Calculational Reasoning Revisited (An Isabelle/Isar Experience)

- Computer ScienceTPHOLs
- 2001

Calculational reasoning within Isabelle/Isar provides a framework for high-level natural deduction proofs that may be written in a human-readable fashion, resulting in many useful proof patterns.

VeriFast: Imperative Programs as Proofs

- Computer Science
- 2010

The VeriFast prototype program verification tool is described, which implements a separation-logic-based approach for the specification and verification of safety properties of pointer-manipulating imperative programs.

Structured calculational proof

- Computer ScienceFormal Aspects of Computing
- 2005

We propose a new format for writing proofs, calledstructured calculational proof. The format resembles the calculational style already familiar to many computer scientists, but extends it to allow…

On the desirability of mechanizing calculational proofs

- Mathematics, Computer ScienceInf. Process. Lett.
- 2001

Abstract Dijkstra argues that calculational proofs are preferable to traditional pictorial and/or verbal proofs. First, due to the calculational proof format, incorrect proofs are less likely.…

Interfacing Program Construction and Verification

- Computer ScienceWorld Congress on Formal Methods
- 1999

PVS (Prototype Verification System) is a theorem checker developed at SRI that has been extensively used for verifying software, in particular in safety-critical applications and this paper describes how these two systems have been combined into one.

Zeno: An Automated Prover for Properties of Recursive Data Structures

- Computer ScienceTACAS
- 2012

Zeno is a new tool for the automatic generation of proofs of simple properties of functions over recursively defined data structures. It takes a Haskell program and an assertion as its goal and tries…

A Modular Integration of SAT/SMT Solvers to Coq through Proof Witnesses

- Computer ScienceCPP
- 2011

A way to enjoy the power of SAT and SMT provers in Coq without compromising soundness is presented, conceived in a modular way, in order to tame the proofs' complexity and to be extendable.