110 likes | 234 Views
E-KRHyper A Hyper Tableau Theorem Prover with Equality. Björn Pelzer bpelzer@uni-koblenz.de. Overview and Motivation. KRHyper theorem prover. E-KRHyper theorem prover. add equality. hyper tableau calculus. E-hyper tableau calculus. reasoning. KRHyper:
E N D
E-KRHyperA Hyper Tableau Theorem Prover with Equality Björn Pelzer bpelzer@uni-koblenz.de E-KRHyper
Overview and Motivation KRHyper theorem prover E-KRHyper theorem prover add equality hyper tableau calculus E-hyper tableau calculus reasoning KRHyper: • theorem prover for first-order logic • implements hyper tableau calculus • designed for embedding in knowledge-representation applications • is used in: e-learning, document management, database schema processing, ontology reasoning,... • limitation for use with modal and description logics: no equality reasoning E-KRHyper
Hyper Tableau Calculus - Overview • theorem proving and model generation method for FOL clauses • based on clausal normal form tableaux • Technique: • Given a set of clauses, • constructs a literal tree, • uses a single rule for attaching nodes: hyper extension. E-KRHyper
Hyper Tableau Calculus - Hyper Extension p(b, f(a)) p(b, f(a)) p(x, y) q(f(x), z) p(z, f(a)) r(g(a)) p(z, f(a)) r(g(a)) = {z b} q(a, x) r(g(x)) r(g(x)) = {x a} p(a, y) q(f(a), b) p(b, f(a)) r(g(a)) r(g(a)) q(f(a), b) p(a, y) p(b, f(a)) • Given some branch in a tableau: • select a clause whose negative literals unify with branch literals: p(x, y) q(f(x), b) p(b, f(a)) r(g(a)) • if positive literals from the clause share variables, apply some ground substitution • attach the substituted literals as new nodes • branches with negative leaves are closed and cannot be extended any further E-KRHyper
E-Hyper Tableau Calculus - Overview • joint work with Peter Baumgartner and Ulrich Furbach • combines hyper tableaux with superposition-based handling of equality • sound and complete • Differences to hyper tableaux: • clause tree instead of literal tree • four extension rules instead of one • adds term ordering • adds redundancy handling E-KRHyper
E-Hyper Tableau Calculus - Superposition f(x)x q(f(x), b) p(f(a)) f(x) f(x)x r(g(b)) p(b) q(f(x), b) p(f(a)) f(a) q(f(x), b) p(a) q(f(x), b) p(a) The superposition rules derive a new node by applying a positive equation unit to another clause from the same branch. E-KRHyper
E-Hyper Tableau Calculus - Reflexivity and Split p(f(x, y)) q(y) g(b)g(x) p(f(x, y)) q(y) g(b)g(x) p(f(b, y)) q(y) The split-rule uses a positive disjunction to split the branch. p(f(b, a)) q(a) p(f(b, y)) q(y) = {y a} p(f(b, a)) q(a) The reflexivity-rule eliminates a trivial negative equation. p(f(b, y)) q(y) E-KRHyper
E-Hyper Tableau Calculus - Handling Redundancy f(x)x q(f(a), b) q(f(a), b) f(x)x q(f(a), b) r(g(b)) p(b) q(a, b) q(a, b) • If a clause... • is subsumed, or • follows from smaller clauses, • then it can be removed. tt q(f(a), b) E-KRHyper
E-KRHyper - Overview • E-hyper tableau is built depth-first, one branch at a time • splitting delayed as long as possible • iterative deepening bounded by term weight • enumerates models • backward compatible to KRHyper E-KRHyper
E-KRHyper - Specialities (1) f(a)a (2) g(a)a (3) f(g(x))g(f(x)) (4) p(f(x)) p(g(x)) • satisfiable • yet can cause termination problems for some provers: • p(g(f(x))) p(g(g(x))) • p(g(g(f(x)))) p(g(g(g(x)))) • ... • E-KRHyper: • purification creates ground instances • (1) and (2) allow detection of redundancy • terminates with model p(a) E-KRHyper
E-KRHyper - Experiments and Outlook • works best so far on problems that are range-restricted and satisfiable (solves 74% of the subset in TPTP) • early experiments with blocking transformation for bottom-up model generation • for the future: performance optimization • Thanks! E-KRHyper