42 research outputs found
Canonized Rewriting and Ground AC Completion Modulo Shostak Theories : Design and Implementation
AC-completion efficiently handles equality modulo associative and commutative
function symbols. When the input is ground, the procedure terminates and
provides a decision algorithm for the word problem. In this paper, we present a
modular extension of ground AC-completion for deciding formulas in the
combination of the theory of equality with user-defined AC symbols,
uninterpreted symbols and an arbitrary signature disjoint Shostak theory X. Our
algorithm, called AC(X), is obtained by augmenting in a modular way ground
AC-completion with the canonizer and solver present for the theory X. This
integration rests on canonized rewriting, a new relation reminiscent to
normalized rewriting, which integrates canonizers in rewriting steps. AC(X) is
proved sound, complete and terminating, and is implemented to extend the core
of the Alt-Ergo theorem prover.Comment: 30 pages, full version of the paper TACAS'11 paper "Canonized
Rewriting and Ground AC-Completion Modulo Shostak Theories" accepted for
publication by LMCS (Logical Methods in Computer Science
Elements pour la decidabilite de l'unification modulo la distributivite
SIGLEAvailable from INIST (FR), Document Supply Service, under shelf-number : T 82457 / INIST-CNRS - Institut de l'Information Scientifique et TechniqueFRFranc
Cantor : On Ordinal Notations
A Coq library on ordinal notations. User contributions to the Coq proof assistan
SQLCert: Coq mechanisation of SQL's compilation: Formally reconciling SQL and (relational) algebra
SQL is the standard language for manipulating data stored in relational database systems. In theory, SQL is based on the relational data model. However, there is an important mismatch between the theoretical foundations and the corresponding standard specification, as SQL history spread over decades. Briefly, the disparities concern the treatment of relations: finite sets in theory, finite bags in practice, the treatment of attributes and the chosen corresponding algebra used to compile queries. We propose SQLCert, a Coq mechanisation of three, among four, central steps of SQL's compilation chain: the syntactic analysis, the semantics analysis and the logical optimisation steps. To this purpose, we propose SQLCoq a Gallina grammar and associated Coq-mechanised semantics accounting for the native fragment of SQL described in the ISO/IEC 2006 Final Committee draft. As SQL compilers' logical optimisation is based on algebraic rewritings, we also define ExtAlg a Coq-mechanised extended bag-set-algebra, deeply relate SQLCoq to it and prove, using Coq, most of the commonly used in practice (SQL's queries) rewritings, yielding strong guarantees for the optimiser. Doing so, we thus formally reconcile SQL and its theoretical algebraic counterpart and provide the first, to our knowledge, executable mechanisation proposal of a (realistic fragment of) SQL compiler
An Efficient Incremental Algorithm for Solving Systems of Linear Diophantine Equations
In this paper, we describe an algorithm for solving systems of linear Diophantine equations based on a generalization of an algorithm for solving one equation due to Fortenbacher [3]. It can solve a system as a whole, or be used incrementally when the system is a sequential accumulation of several subsystems. The proof of termination of the algorithm is difficult, whereas the proofs of completeness and correctness are straightforward generalizations of Fortenbacher's proof
A partial solution for D-unification based on a reduction to AC1-unification
. We show that deciding unification modulo both-sided distributivity of a symbol over a symbol + can be reduced to AC1- unification for all unification problems which do not involve the + operator. Moreover, we can describe "almost all" solutions in a finite way, although there are in general infinitely many minimal solutions for such problems. As a consequence, -problems appear as a good candidate for a notion of solved-form for D-unification. 1 Introduction Equations are ubiquitous in mathematics as well as in computer science. Unification is solving equations in some particular domains, namely free term algebras or term algebras modulo an equational theory. Unification was first introduced by Herbrand [3], and rediscovered by Robinson as a basic mechanism for resolution in first order logic [10]. Unification is also the basic mechanism for computing critical pairs [7], and the main inference rule of the completion procedure. On the other hand, the very old and famous 10 th Hilb..