2,284 research outputs found
Formalized proof, computation, and the construction problem in algebraic geometry
An informal discussion of how the construction problem in algebraic geometry
motivates the search for formal proof methods. Also includes a brief discussion
of my own progress up to now, which concerns the formalization of category
theory within a ZFC-like environment
Computing Persistent Homology within Coq/SSReflect
Persistent homology is one of the most active branches of Computational
Algebraic Topology with applications in several contexts such as optical
character recognition or analysis of point cloud data. In this paper, we report
on the formal development of certified programs to compute persistent Betti
numbers, an instrumental tool of persistent homology, using the Coq proof
assistant together with the SSReflect extension. To this aim it has been
necessary to formalize the underlying mathematical theory of these algorithms.
This is another example showing that interactive theorem provers have reached a
point where they are mature enough to tackle the formalization of nontrivial
mathematical theories
TRX: A Formally Verified Parser Interpreter
Parsing is an important problem in computer science and yet surprisingly
little attention has been devoted to its formal verification. In this paper, we
present TRX: a parser interpreter formally developed in the proof assistant
Coq, capable of producing formally correct parsers. We are using parsing
expression grammars (PEGs), a formalism essentially representing recursive
descent parsing, which we consider an attractive alternative to context-free
grammars (CFGs). From this formalization we can extract a parser for an
arbitrary PEG grammar with the warranty of total correctness, i.e., the
resulting parser is terminating and correct with respect to its grammar and the
semantics of PEGs; both properties formally proven in Coq.Comment: 26 pages, LMC
Tactics for Reasoning modulo AC in Coq
We present a set of tools for rewriting modulo associativity and
commutativity (AC) in Coq, solving a long-standing practical problem. We use
two building blocks: first, an extensible reflexive decision procedure for
equality modulo AC; second, an OCaml plug-in for pattern matching modulo AC. We
handle associative only operations, neutral elements, uninterpreted function
symbols, and user-defined equivalence relations. By relying on type-classes for
the reification phase, we can infer these properties automatically, so that
end-users do not need to specify which operation is A or AC, or which constant
is a neutral element.Comment: 16
- …