2,324 research outputs found

    Discriminator varieties and symbolic computation

    Get PDF
    AbstractWe look at two aspects of discriminator varieties which could be of considerable interest in symbolic computation:1.discriminator varieties are unitary (i.e., there is always a most general unifier of two unifiable terms), and2.every mathematical problem can be routinely cast in the form†p1 ≈ q1, …, pk ≈ qk implies the equation x ≈ y.Item (l) offers possibilities for implementations in computational logic, and (2) shows that Birkhoff's five rules of inference for equational logic are all one needs to prove theorems in mathematics

    Efficient Groundness Analysis in Prolog

    Get PDF
    Boolean functions can be used to express the groundness of, and trace grounding dependencies between, program variables in (constraint) logic programs. In this paper, a variety of issues pertaining to the efficient Prolog implementation of groundness analysis are investigated, focusing on the domain of definite Boolean functions, Def. The systematic design of the representation of an abstract domain is discussed in relation to its impact on the algorithmic complexity of the domain operations; the most frequently called operations should be the most lightweight. This methodology is applied to Def, resulting in a new representation, together with new algorithms for its domain operations utilising previously unexploited properties of Def -- for instance, quadratic-time entailment checking. The iteration strategy driving the analysis is also discussed and a simple, but very effective, optimisation of induced magic is described. The analysis can be implemented straightforwardly in Prolog and the use of a non-ground representation results in an efficient, scalable tool which does not require widening to be invoked, even on the largest benchmarks. An extensive experimental evaluation is givenComment: 31 pages To appear in Theory and Practice of Logic Programmin

    Almost structural completeness; an algebraic approach

    Full text link
    A deductive system is structurally complete if its admissible inference rules are derivable. For several important systems, like modal logic S5, failure of structural completeness is caused only by the underivability of passive rules, i.e. rules that can not be applied to theorems of the system. Neglecting passive rules leads to the notion of almost structural completeness, that means, derivablity of admissible non-passive rules. Almost structural completeness for quasivarieties and varieties of general algebras is investigated here by purely algebraic means. The results apply to all algebraizable deductive systems. Firstly, various characterizations of almost structurally complete quasivarieties are presented. Two of them are general: expressed with finitely presented algebras, and with subdirectly irreducible algebras. One is restricted to quasivarieties with finite model property and equationally definable principal relative congruences, where the condition is verifiable on finite subdirectly irreducible algebras. Secondly, examples of almost structurally complete varieties are provided Particular emphasis is put on varieties of closure algebras, that are known to constitute adequate semantics for normal extensions of S4 modal logic. A certain infinite family of such almost structurally complete, but not structurally complete, varieties is constructed. Every variety from this family has a finitely presented unifiable algebra which does not embed into any free algebra for this variety. Hence unification in it is not unitary. This shows that almost structural completeness is strictly weaker than projective unification for varieties of closure algebras

    Tactics for Reasoning modulo AC in Coq

    Get PDF
    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
    • …
    corecore