# SOGrounder:

(KU Leuven)

## Proposal

### SOGrounder

A software tool to translate expressive second-order logic theories to quantified boolean formulas.

## Second-Order Logic

• Variables: symbols representing
• elements of the domain $$\mathcal{D}$$, or
• predicates / functions over this domain
• Terms: First-order variables and function applications
• Atoms: Predicate applications
• Formulas: $$\neg, \lor, \land, \Rightarrow, \Leftrightarrow, \exists, \forall$$

## Second-Order Logic

as a modelling language

Introducing types

## Second-Order 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
• Counterexample-guided abstraction refinement (CEGAR)

## Implementation

1. Push negations
2. Unnest terms
3. Remove function app. through graphing
4. Eliminate $$\Rightarrow, \Leftrightarrow$$
5. Ground FO variables
6. Introduce unique names through alpha conversion
7. Pull quantifiers to front e.g.: $$(\exists \alpha : \phi) \land \psi\rightsquigarrow \exists \alpha : (\phi \land \psi)$$
8. Tseitinize
9. 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:

• Well-known $$\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

By krr

• 123