Matthias van der Hallen - ICLP DC (31/08/15)
A grounder and solver that supports certain FO(·) extensions
Family of Languages extending FO with:
Large, or even infinite, domains: costly enumeration
Potentially backed by a traditional database
Same concepts reoccur often.
E.g. Homomorphism, isomorphism
We write the transitive closure of binary relations very often:
∀a, b : ClosureOfP ( a, b ) ← P( a, b ).
∀a, b : ClosureOfP ( a, b ) ← ∃c : P( a, c ) ∧ P( c, b ).
FO(·) misses:
∀a, b : ClosureOfP ( a, b ) ← P( a, b ).
∀a, b : ClosureOfP ( a, b ) ← ∃c : P( a, c ) ∧ P( c, b ).
We write the transitive closure of binary relations very often:
∀a, b : ClosureOfP ( a, b ) ← P( a, b ).
∀a, b : ClosureOfP ( a, b ) ← ∃c : P( a, c ) ∧ P( c, b ).
∀a, b : ClosureOfP ( a, b ) ← P( a, b ).
∀a, b : ClosureOfP ( a, b ) ← ∃c : P( a, c ) ∧ P( c, b ).
FO(·) misses:
∀a, b : ClosureOfP ( a, b ) ← P( a, b ).
∀a, b : ClosureOfP ( a, b ) ← ∃c : P( a, c ) ∧ P( c, b ).
Higher Order Support is an important step towards Modularity:
Templates are Second Order definitions
{
Closure(P,Q) ← {
Q(x,y) ← P(x,y) ∨ (∃ z: Q(x,z)∧Q(z,y)).
}.
}
Higher Order Support is an important step towards Modularity:
Templates are Second Order definitions
{
Closure(P,Q) ← {
Q(x,y) ← P(x,y) ∨ (∃ z: Q(x,z)∧Q(z,y)).
}.
}
Many solving systems, such as IDP, depend on a grounding phase.
Grounding translates FO(·) constraints to a propositional level
but when domain enumeration is costly or impossible, we can't ground naively.
∀a : P(a) ⇒ ∀b : Q(a,b).
¬P(a1) ∨ Q(a1,b1).
¬P(a1) ∨ Q(a1,b2).
¬P(a2) ∨ Q(a2,b1).
¬P(a2) ∨ Q(a2,b2).
We need smarter techniques to handle large domains and higher order constraints:
∀a : P(a) ⇒ ∀b : Q(a,b).
For large domains, this is grounded when:
P(a) is made True for some a
Reducing the number of quantifiers makes for smaller groundings
Skolemization: Replace existential quantifiers by (Skolem) variables:
∃a : P(a).
∀a : ∃b : Q(a,b).
P(S).
∀a : Q(a,S(a)).
Requires support for functions
Extensions & other techniques exist:
Technique to allow quantification over predicates:
matthias.vanderhallen@cs.kuleuven.be
Celestijnenlaan 200A, Leuven
+32 16 37 39 84