88 research outputs found
Formal study of plane Delaunay triangulation
This article presents the formal proof of correctness for a plane Delaunay
triangulation algorithm. It consists in repeating a sequence of edge flippings
from an initial triangulation until the Delaunay property is achieved. To
describe triangulations, we rely on a combinatorial hypermap specification
framework we have been developing for years. We embed hypermaps in the plane by
attaching coordinates to elements in a consistent way. We then describe what
are legal and illegal Delaunay edges and a flipping operation which we show
preserves hypermap, triangulation, and embedding invariants. To prove the
termination of the algorithm, we use a generic approach expressing that any
non-cyclic relation is well-founded when working on a finite set
Discrete Jordan Curve Theorem: A proof formalized in Coq with hypermaps
This paper presents a formalized proof of a discrete form of the Jordan Curve
Theorem. It is based on a hypermap model of planar subdivisions, formal
specifications and proofs assisted by the Coq system. Fundamental properties
are proven by structural or noetherian induction: Genus Theorem, Euler's
Formula, constructive planarity criteria. A notion of ring of faces is
inductively defined and a Jordan Curve Theorem is stated and proven for any
planar hypermap
Verified Double Sided Auctions for Financial Markets
Double sided auctions are widely used in financial markets to match demand and supply. Prior works on double sided auctions have focused primarily on single quantity trade requests. We extend various notions of double sided auctions to incorporate multiple quantity trade requests and provide fully formalized matching algorithms for double sided auctions with their correctness proofs. We establish new uniqueness theorems that enable automatic detection of violations in an exchange program by comparing its output with that of a verified program. All proofs are formalized in the Coq proof assistant without adding any axiom to the system. We extract verified OCaml and Haskell programs that can be used by the exchanges and the regulators of the financial markets. We demonstrate the practical applicability of our work by running the verified program on real market data from an exchange to automatically check for violations in the exchange algorithm
The Design and Regulation of Exchanges: A Formal Approach
We use formal methods to specify, design, and monitor continuous double auctions, which are widely used to match buyers and sellers at exchanges of foreign currencies, stocks, and commodities. We identify three natural properties of such auctions and formally prove that these properties completely determine the input-output relationship. We then formally verify that a natural algorithm satisfies these properties. All definitions, theorems, and proofs are formalized in an interactive theorem prover. We extract a verified program of our algorithm to build an automated checker that is guaranteed to detect errors in the trade logs of exchanges if they generate transactions that violate any of the natural properties
Formalized Class Group Computations and Integral Points on Mordell Elliptic Curves
Diophantine equations are a popular and active area of research in number
theory. In this paper we consider Mordell equations, which are of the form
, where is a (given) nonzero integer number and all solutions in
integers and have to be determined. One non-elementary approach for
this problem is the resolution via descent and class groups. Along these lines
we formalized in Lean 3 the resolution of Mordell equations for several
instances of . In order to achieve this, we needed to formalize several
other theories from number theory that are interesting on their own as well,
such as ideal norms, quadratic fields and rings, and explicit computations of
the class number. Moreover we introduced new computational tactics in order to
carry out efficiently computations in quadratic rings and beyond.Comment: 14 pages. Submitted to CPP '23. Source code available at
https://github.com/lean-forward/class-group-and-mordell-equatio
Formalizing generalized maps in Coq
AbstractThis paper is the first half of a two-part series devoted to an exemplary formal proof of a fundamental result in the field of geometry—the theorem of classification of surfaces—which has major implications in computer graphics. We study here the specification of generalized maps, a topological combinatory model for surfaces subdivisions. We show how we developed in Coq two fundamentally distinct formalizations of generalized maps, each based on one of the standard definitions, in a single common framework, then used this specification to prove for the first time their complete equivalence
Reasoning about Relaxed Programs
A number of approximate program transformations have recently emerged that enable transformed programs to trade accuracy of their results for increased performance by dynamically and nondeterministically modifying variables that control program execution. We call such transformed programs relaxed programs -- they have been extended with additional nondeterminism to relax their semantics and offer greater execution flexibility. We present programming language constructs for developing relaxed programs and proof rules for reasoning about properties of relaxed programs. Our proof rules enable programmers to directly specify and verify acceptability properties that characterize the desired correctness relationships between the values of variables in a program's original semantics (before transformation) and its relaxed semantics. Our proof rules also support the verification of safety properties (which characterize desirable properties involving values in individual executions). The rules are designed to support a reasoning approach in which the majority of the reasoning effort uses the original semantics. This effort is then reused to establish the desired properties of the program under the relaxed semantics. We have formalized the dynamic semantics of our target programming language and the proof rules in Coq, and verified that the proof rules are sound with respect to the dynamic semantics. Our Coq implementation enables developers to obtain fully machine checked verifications of their relaxed programs
- …