## Exploiting Symmetry in Model Expansion for Predicate and Propositional Logic

Jo Devriendt

Supervisor: Marc Denecker

January 5th 2017

• Motivation

• Chapter 3

• Chapter 4

• Chapter 5

• Chapter 6
\neg p \vee q
$\neg p \vee q$
P(x) \vee Q(x)
$P(x) \vee Q(x)$
l \rightarrow \sigma(l)
$l \rightarrow \sigma(l)$

# Combinatorial problems

Pick a satisfying solution from a set of candidate solutions

Automated systems

In:
- description of candidate solutions (simple)
- description of satisfying solutions (complex)

Out:
- satisfying solution

# Combinatorial problems

Abstraction in thesis:
model expansion problem
in predicate and propositional logic

In:
- vocabulary + domain

- theory + input structure

Out:
- model to theory

Pick a satisfying solution from a set of candidate solutions

# Symmetry

Permutation on the set of candidate solutions
preserving satisfaction

# Symmetry

Partitions candidate solutions into symmetry classes

Potential exponential blow-up of search space.

This blow-up is a fundamental problem of current combinatorial search technology and must be addressed.

# Symmetry "handling"

• Detect non-trivial symmetry group
• Guide combinatorial search algorithm to visit each symmetry class instead of each candidate solution.

# Chapter 3

## Symmetry in Propositional Logic

\neg p \vee q
$\neg p \vee q$

## Existing work (Shatter, Sbass)

1. Convert propositional theory to graph
2. Detect generators for graph automorphism group
3. Convert automorphism generators to symmetry generators
4. Add symmetry breaking formula to theory for each generator
5. Solve extended problem
\neg p \vee q
$\neg p \vee q$

## Our work (BreakID)

1. Convert propositional theory to graph - improved graph encoding for ground ASP theory
2. Detect generators for graph automorphism group
3. Convert automorphism generators to symmetry generators
4. Infer properties of symmetry group
• row interchangeability
• stabilizer chain
5. Add symmetry breaking formula to theory for each generator, as well as for row interchangeability
6. Add binary symmetry breaking clauses based on stabilizer chain
7. Solve extended problem
\neg p \vee q
$\neg p \vee q$

## Experimental evaluation

\neg p \vee q
$\neg p \vee q$

Performs well on Pigeonhole :)

# Chapter 4

## Symmetry in Predicate Logic

P(x) \vee Q(x)
$P(x) \vee Q(x)$

## Existing work

P(x) \vee Q(x)
$P(x) \vee Q(x)$
1. Derive symmetry due to undifferentiated domain elements
2. Construct propositional symmetry breaking formulas

(Kodkod, Paradox)

1. Ground to propositional theory
2. Use propositional symmetry detection (automorphism graph)
3. Construct propositional symmetry breaking formulas

(Sbass)

## Our work

1. local domain symmetry and local domain interchangeability
2. Automorphism graph encoding of predicate level theory + structure
3. Efficient local domain interchangeability detection method
• Often makes graph encoding redundant
4. Completeness result for local domain interchangeability
5. Implementation in IDP

P(x) \vee Q(x)
$P(x) \vee Q(x)$

## Experimental evaluation

P(x) \vee Q(x)
$P(x) \vee Q(x)$

# Chapter 5

## Combinatorial Optimization

Satisfying solutions have an associated objective function.

## Local Search

Move locally through solution space optimizing the objective function.

## Automating Local Search?

Existing work

• State-of-the-art: handcrafted algorithms
• WalkSat: flips a Boolean variable at each iteration
• LocalSolver: constructs ejection chains of Boolean variables that tend to preserve feasibility

## Our work

• Use (quasi)symmetry properties of combinatorial optimization problem to construct neighborhoods
• Combine with complete search

# Chapter 6

## Symmetry Propagation

l \rightarrow \sigma(l)
$l \rightarrow \sigma(l)$

## Conflict Learning Conflict Driven SAT solving

• Search algorithm with decisions, propagations, conflicts and backjumps
• Proof builder based on conflicts: learns new clauses that are resolvents of propagating clauses
l \rightarrow \sigma(l)
$l \rightarrow \sigma(l)$

## Dynamic Symmetry Handling in SAT

Existing work

Symmetrical Learning Scheme: learn symmetrical variants of learned clause

l \rightarrow \sigma(l)
$l \rightarrow \sigma(l)$

Good idea, but what symmetrical variants to learn?

## Idea 1: Symmetry Propagation

Our work

• Weak activity for symmetries
• Allow symmetrical propagations
• With symmetrical reason clauses
l \rightarrow \sigma(l)
$l \rightarrow \sigma(l)$

Weakly inactive symmetries also lead to useful symmetrical propagations!

## Idea 2: Symmetric Explanation Learning

Our work

• For each propagating clause   , keep track of symmetrical

• If           is unit or conflicting, learn
l \rightarrow \sigma(l)
$l \rightarrow \sigma(l)$

Simple and elegant.

c
$c$
\sigma(c)
$\sigma(c)$
\sigma(c)
$\sigma(c)$
\sigma(c)
$\sigma(c)$

## Experimental evaluation

l \rightarrow \sigma(l)
$l \rightarrow \sigma(l)$

# Summary

## Thanks for your attention!

\neg p \vee q
$\neg p \vee q$
P(x) \vee Q(x)
$P(x) \vee Q(x)$
l \rightarrow \sigma(l)
$l \rightarrow \sigma(l)$

New symmetry breaking preprocessor for SAT and ground ASP

Useful predicate level notion of symmetry

Automated local search through symmetry

Efficient variant of symmetric learning

By krr

• 791