EKRHyper A Hyper Tableau Theorem Prover with Equality
E-KRHyper A Hyper Tableau Theorem Prover with Equality Björn Pelzer bpelzer@uni-koblenz. de Björn Pelzer (AGKI) E-KRHyper 1
Overview and Motivation 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 KRHyper theorem prover add equality hyper tableau calculus reasoning Björn Pelzer (AGKI) E-KRHyper theorem prover E-hyper tableau calculus 2
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. Björn Pelzer (AGKI) E-KRHyper 3
Hyper Tableau Calculus - Hyper Extension Given some branch in a tableau: • select a clause whose negative literals unify with branch literals: p(x, y ) q(f(x), z) p(z, f (a)) r(g(a)) =f(a)) { z b} 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 p(b, f(a)) q(a, x) r(g(x)) = { x a} p(a, y) q(f(a), b) p(b, f(a)) r(g(a))the substituted literals as new q(f(a), b) r(g(a)) • attach p(a, y) p(b, f(a)) nodes • branches with negative leaves are closed and cannot be extended any further Björn Pelzer (AGKI) E-KRHyper 4
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 Björn Pelzer (AGKI) E-KRHyper 5
E-Hyper Tableau Calculus - Superposition The superposition rules derive a new node by applying a positive equation unit to another clause from the same branch. f(x) x q(f(x), b) p(f(a)) r(g(b)) p(b) q(f(x), b) p(f(a)) f(a) q(f(x), b) p(a) Björn Pelzer (AGKI) E-KRHyper 6
E-Hyper Tableau Calculus - Reflexivity and Split The reflexivity-rule eliminates a trivial negative equation. p(f(x, y )) q(y) g(b) g(x) p(f(b, y )) q(y) 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)) Björn Pelzer (AGKI) q(a) E-KRHyper 7
E-Hyper Tableau Calculus - Handling Redundancy If a clause. . . • is subsumed, or f(x) x t t b) q(f(a), r(g(b)) p(b) • follows from smaller clauses, then it can be removed. f(x) x q(a, b) q(f(a), b) q(a, b) Björn Pelzer (AGKI) E-KRHyper 8
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 Björn Pelzer (AGKI) E-KRHyper 9
E-KRHyper - Specialities (1) f(a) a (2) g(a) a • satisfiable • yet can cause termination problems for some provers: (3) f(g(x)) g(f(x)) p(g(f(x))) p(g(g(x))) (4) p(f(x)) p(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) Björn Pelzer (AGKI) E-KRHyper 10
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 bottomup model generation • for the future: performance optimization Thanks! Björn Pelzer (AGKI) E-KRHyper 11
- Slides: 11