An Imperative Language for Verified Exact Real-Number Computation
Andrej Bauer, Sewon Park, Alex Simpson

TL;DR
Clerical is a new imperative programming language designed for verified exact real-number computations, integrating nondeterminism, local state, and limits, with formal semantics and correctness proofs.
Contribution
It introduces Clerical, combining imperative programming with nondeterminism and limits, supported by a formal semantics, logic, and verified implementation for exact real computations.
Findings
Developed a domain-theoretic denotational semantics for Clerical
Formulated a sound Hoare-style specification logic
Implemented and verified a program computing π in OCaml and Coq
Abstract
We introduce Clerical, a programming language for exact real-number computation that combines first-order imperative-style programming with a limit operator for computation of real numbers as limits of Cauchy sequences. We address the semidecidability of the linear ordering of the reals by incorporating nondeterministic guarded choice, through which decisions based on partial comparison operations on reals can be patched together to give total programs. The interplay between mutable state, nondeterminism, and computation of limits is controlled by the requirement that expressions computing limits and guards modify only local state. We devise a domain-theoretic denotational semantics that uses a variant of Plotkin powerdomain construction tailored to our specific version of nondeterminism. We formulate a Hoare-style specification logic, show that it is sound for the denotational…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNumerical Methods and Algorithms · Parallel Computing and Optimization Techniques · Embedded Systems Design Techniques
