(KU Leuven)
A software tool to translate expressive second-order logic theories to quantified boolean formulas.
as a modelling language
Introducing types
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
Formulas in quantified propositional logic:
\(\forall a \exists b \exists c \forall d . \psi\)
0
1
2
Quantifier levels
Matrix
Quantifier block
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).
The Strategic Companies problem:
The Strategic Companies problem
Set of companies and products
'joint ownership' relation
'produces' relation
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\)?\)
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