SOGrounder:
Modelling and Solving SecondOrder Logic
Matthias van der Hallen, Gerda Janssens
(KU Leuven)
Motivation
Provide expressive languages for modelling problems in logic.
Proposal
Model problems using SecondOrder Logic
Solve it with Quantified Boolean Formulas
SOGrounder
A software tool to translate expressive secondorder logic theories to quantified boolean formulas.
SecondOrder Logic
 Variables: symbols representing
 elements of the domain \(\mathcal{D}\), or
 predicates / functions over this domain
 Terms: Firstorder variables and function applications
 Atoms: Predicate applications
 Formulas: \(\neg, \lor, \land, \Rightarrow, \Leftrightarrow, \exists, \forall \)
SecondOrder Logic
as a modelling language
Introducing types
SecondOrder Logic
as a modelling language
type Company = {Barilla; Dececco; Callippo; Star}
type Good = {Pasta; Tonno}
controlledBy :: (Company, Company, Company, Company, Company)
produces :: (Good, Company)
strategicset :: (Company)
non_strat_pair :: (Company, Company)
produces = {Barilla, Pasta; Dececco, Pasta; Callippo, Tonno; Star, Tonno}
controlledBy = {Star, Star, Star, Star, Barilla; Barilla, Barilla, Barilla, Barilla, Dececco}
non_strat_pair = {Barilla, Star}
∀ good :: Good : ∃ prod :: Company : strategicset(prod) & produces(prod, good).
∀ subset :: (Company) : [...]
[...]
Vocabulary:
Structure:
Theory:
Introducing types
Quantified Boolean Formulas
Formulas in quantified propositional logic:
 Prenex form
 Quantifiers can alternate indefinitely
 PCNF if matrix is in CNF
\(\forall a \exists b \exists c \forall d . \psi\)
0
1
2
Quantifier levels
Matrix
Quantifier block
Quantified Boolean Formulas
 Many solvers exist
 Input:
 QDIMACS: textual PCNF
 QCIR: Quantified Circuit representation, dispenses of tseitinization
 ...
 Techniques:
 Conflict driven clause and solution driven cube learning in QDPLL
 Counterexampleguided abstraction refinement (CEGAR)
Implementation
 Push negations
 Unnest terms
 Remove function app. through graphing
 Eliminate \(\Rightarrow, \Leftrightarrow\)
 Ground FO variables
 Introduce unique names through alpha conversion
 Pull quantifiers to front e.g.: \((\exists \alpha : \phi) \land \psi\rightsquigarrow \exists \alpha : (\phi \land \psi)\)
 Tseitinize
 Translate SO:
 Replace atoms \( p(\overline{x}) \) with propositions \( p_{\overline{x}} \)
 Replace quantifications \(\forall p\) with domain \(\mathcal{D}\) with \(\forall p_{d_1}, ..., \forall p_{d_n}\) where \(d_1, ... d_n \in \mathcal{D}\)
Optimizations
We introduce binary quantification
Binary quantification takes two formulas:
type node = {a;b;c;d}
graph :: (node,node)
graph = {a,b; b,c; a,c}
∀ (x,y) :: [graph(x,y)] : graph(y,x).
type node = {a;b;c;d}
graph :: (node,node)
graph = {a,b; b,c; a,c}
graph(b,a) ∧ graph(c,b) ∧ graph(c,a).
 A formula restricting the domain of the quantified variables
 The formula to be instantiated
Experimental Evaluation
The Strategic Companies problem:
 Wellknown \(\Sigma_2^P\) problem with ASP encoding and Instantiation Scheme for QBF
 Used in QBF ('06, '10, ...) and ASP competitions ('13)
 Randomly generated instances, # of companies ~ competition
Experimental Evaluation
The Strategic Companies problem
Set of companies and products

'joint ownership' relation

'produces' relation
Experimental Evaluation
The Strategic Companies problem
Strategic set:

produces all products

closed under ownership
Minimal strategic sets:
No subset forms its own strategic set
For companies \(c_1, c_2\), is there a minimal strategic set containing \(c_1, c_2\)?\)
Experimental Evaluation
The Strategic Companies problem
Pasta  Tonno  

Barilla  x  
Dececco  x  
Star 
x 

Callippo 
X 
Barilla
Dececco
Star
owns
owns
Minimal strategic sets:
Star, Barilla, and Dececco
Dececco and Callippo
Results: Grounding
 Many grounding optimizations are still to be implemented
 Bottom up grounding
Results: Solving
 Better performance than QBF competition encoding
 Without tseitinization, outperforms clingo
Conclusions
 Easy modelling
 Promising performance
 Many grounding techniques left to investigate and port
SOGrounder: Modelling and Solving SecondOrder Logic
By krr