75 research outputs found
Closures and fairness in the semantics of programming logic
AbstractWe use the notions of closures and fair chaotic iterations to give a semantics to logic programs. The relationships between the semantics of individual rules and the semantics of the whole program are established and an application to parallel processing is mentioned. A chaotic fixed point theorem is given, which carries the non-determinism inherent to resolution. Finally, we introduce a general definition of finite failure and the concept of fair SLD resolution, and show that this procedure is sound and strongly complete with respect to both success and finite failure, thus extending a result of Apt and Van Emden (1982)
First-Order Logic Theorem Proving and Model Building via Approximation and Instantiation
In this paper we consider first-order logic theorem proving and model
building via approximation and instantiation. Given a clause set we propose its
approximation into a simplified clause set where satisfiability is decidable.
The approximation extends the signature and preserves unsatisfiability: if the
simplified clause set is satisfiable in some model, so is the original clause
set in the same model interpreted in the original signature. A refutation
generated by a decision procedure on the simplified clause set can then either
be lifted to a refutation in the original clause set, or it guides a refinement
excluding the previously found unliftable refutation. This way the approach is
refutationally complete. We do not step-wise lift refutations but conflicting
cores, finite unsatisfiable clause sets representing at least one refutation.
The approach is dual to many existing approaches in the literature because our
approximation preserves unsatisfiability
A Machine Checked Model of Idempotent MGU Axioms For Lists of Equational Constraints
We present formalized proofs verifying that the first-order unification
algorithm defined over lists of satisfiable constraints generates a most
general unifier (MGU), which also happens to be idempotent. All of our proofs
have been formalized in the Coq theorem prover. Our proofs show that finite
maps produced by the unification algorithm provide a model of the axioms
characterizing idempotent MGUs of lists of constraints. The axioms that serve
as the basis for our verification are derived from a standard set by extending
them to lists of constraints. For us, constraints are equalities between terms
in the language of simple types. Substitutions are formally modeled as finite
maps using the Coq library Coq.FSets.FMapInterface. Coq's method of functional
induction is the main proof technique used in proving many of the axioms.Comment: In Proceedings UNIF 2010, arXiv:1012.455
Determinacy analysis for logic programs using mode and type information
We propose an analysis for detecting procedures and goals
that are deterministic (i.e. that produce at most one solution), or predicates whose clause tests are mutually exclusive (which implies that at most one of their clauses will succeed) even if they are not deterministic (because they cali other predicates that can produce more than one solution). Applications of such determinacy information include detecting programming errors, performing certain high-level program transformations for improving search efñciency, optimizing low level code generation and parallel execution, and estimating tighter upper bounds on the computational costs of goals and data sizes, which can be used for program debugging, resource consumption and granularity control, etc. We have implemented the analysis and integrated it in the CiaoPP system, which also infers automatically the mode and type information that our analysis takes as input. Experiments performed on this implementation show that the analysis is fairly accurate and efncient
Control flow versus logic: A denotational and a declarative model for Guarded Horn Clauses
Advances in Property-Based Testing for αProlog
Check is a light-weight property-based testing tool built on top of
Prolog, a logic programming language based on nominal logic.
Prolog is particularly suited to the validation of the meta-theory of
formal systems, for example correctness of compiler translations involving
name-binding, alpha-equivalence and capture-avoiding substitution. In this
paper we describe an alternative to the negation elimination algorithm
underlying Check that substantially improves its effectiveness. To
substantiate this claim we compare the checker performances w.r.t. two of its
main competitors in the logical framework niche, namely the QuickCheck/Nitpick
combination offered by Isabelle/HOL and the random testing facility in
PLT-Redex.Comment: To appear, Tests and Proofs 2016; includes appendix with details not
in the conference versio
- …