Algorithmic Applications of Knowledge Compilation

Habilitation à Diriger des Recherches

Florent Capelli

CRIL, Université d’Artois

15 June 2026

Introduction

Problems & solutions

000000
000001
000010
000011
000100
000101
000110
000111
001000
001001
001010
001011
001100
001101
001110
001111
010000
010001
010010
010011
010100
010101
010110
010111
011000
011001
011010
011011
011100
011101
011110
011111
100000
100001
100010
100011
100100
100101
100110
100111
101000
101001
101010
101011
101100
101101
101110
101111
110000
110001
110010
110011
110100
110101
110110
110111
111000
111001
111010
111011
111100
111101
111110
111111

Is there a green box satisfying a set of “constraints”?

Understanding the set of solutions

000000
000001
000010
000011
000100
000101
000110
000111
001000
001001
001010
001011
001100
001101
001110
001111
010000
010001
010010
010011
010100
010101
010110
010111
011000
011001
011010
011011
011100
011101
011110
011111
100000
100001
100010
100011
100100
100101
100110
100111
101000
101001
101010
101011
101100
101101
101110
101111
110000
110001
110010
110011
110100
110101
110110
110111
111000
111001
111010
111011
111100
111101
111110
111111

Open every box? Works, but costly.

Open every green box? Still costly: full materialization.

Is there a middle ground between implicit and fully explicit?

Count the green boxes? Pick a green box uniformly at random. Find every green box. Find “the best” green box. Count the green boxes starting with 0

From implicit definition to ?

b1b2b3b4b5b6b_1~~b_2~~b_3~~b_4~~b_5~~b_6

b1b2b3b_1~~b_2~~b_3 b4b5b6b_4~~b_5~~b_6

List of constraints:

  • ¬b1¬b2b3\neg b_1 \vee \neg b_2 \vee b_3
  • ¬b1¬b2b3\neg b_1 \vee \neg b_2 \vee b_3
  • b1¬b2¬b3b_1 \vee \neg b_2 \vee \neg b_3
  • b1b2b3b_1 \vee b_2 \vee b_3

  • ¬b4¬b5¬b6\neg b_4 \vee \neg b_5 \vee \neg b_6
  • ¬b4b5b6\neg b_4 \vee b_5 \vee b_6
  • b4¬b5b6b_4 \vee \neg b_5 \vee b_6
  • b4b5¬b6b_4 \vee b_5 \vee \neg b_6

(b1b2b3)(b_1~b_2~b_3) has an even number of 11.

(b4b5b6)(b_4~b_5~b_6) has an odd number of 11.

g t × a1 b₁ ⊕ b₂ ⊕ b₃ = 0 t->a1 a2 b₄ ⊕ b₅ ⊕ b₆ = 1 t->a2 b20 b₂ a1->b20 b21 b₂ a1->b21 a111 × a2->a111 a001 × a2->a001 a100 × a2->a100 a010 × a2->a010 top 1 bot 0 b30 b₃ b20->b30 b31 b₃ b20->b31 b21->b30 b21->b31 b30->top b30->bot b31->top b31->bot b4 b₄=1 a111->b4 b5 b₅=1 a111->b5 b6 b₆=1 a111->b6 nb4 b₄=0 a001->nb4 nb5 b₅=0 a001->nb5 a001->b6 a100->b4 a100->nb5 nb6 b₆=0 a100->nb6 a010->nb4 a010->b5 a010->nb6

Solutions are described by circuits using Cartesian products and (possibly disjoint) unions!

Here we can deduce that there are 4×4=164 \times 4 = 16 solutions!

Circuits Zoo

Circuit root mul1 × root->mul1 mul2 × root->mul2 ux mul1->ux uy1 mul1->uy1 mul2->ux uy2 mul2->uy2 x0 x=0 ux->x0 x1 x=1 ux->x1 y0 y=0 uy1->y0 y1 y=1 uy1->y1 uy2->y0 y2 y=2 uy2->y2
DNNF
{,×}\{\cup,\times\}-circuits
x y
0 0
0 1
0 2
1 0
1 1
1 2
Circuit union0 mul0 × union0->mul0 mul1 × union0->mul1 xrel mul0->xrel y01 mul0->y01 mul1->xrel y2 y=2 mul1->y2 x0 x=0 xrel->x0 x1 x=1 xrel->x1 y0 y=0 y01->y0 y1 y=1 y01->y1
deterministic DNNF
{,×}\{\uplus,\times\}-circuits
Circuit x1 𝑥₁ x2a x₂ x1->x2a 0 x2b x₂ x1->x2b 1 prod × x1->prod 2 x3a x₃ x2a->x3a 0 x2a->x3a 1 x2b->x3a 2 x3b x₃ x2b->x3b 1 x2b->x3b 0 x2c x₂ T x2c->T 0 x2c->T 2 F x2c->F 1 x3a->T 0 x3a->T 1 x3b->T 1 x3b->T 2 prod->x2c prod->x3b
decision DNNF
{𝖽𝖾𝖼,×}\{\mathsf{dec},\times\}-circuits
x₁ x₂ x₃
0 0 0
1 2 1
2 2 2

\uplus allows for counting!

Knowledge Compilation Map

Visualize the properties of each circuit class:

Gates Boolean Domain Enum Count Condition Complement
{,×}\{\cup, \times\} DNNF
{,×}\{\uplus, \times\} d-DNNF
{𝖽𝖾𝖼,×}\{\mathsf{dec}, \times\} dec-DNNF
{𝖽𝖾𝖼}\{\mathsf{dec}\} FBDD

The goal of knowledge compilation is to build, exploit and understand the limits of compact yet tractable representations of an implicitly defined set.

Selected Contributions

Building small representations

  • New algorithms inspired by model counting
    with Bova, Mengel, Slivovsky
  • New canonical datastructure called TDD.
    with Choi, Mengel, Muñoz, Van den Broecke
  • New analysis of exhaustive DPLL .
    with Carmeli, Irwin, Salvati

Lower bounds and limits

  • Lower bounds and communication complexity
    with Bova, Mengel, Slivovsky
  • Sharp lower bounds based on treewidth.
    with Amarilli, Monet, Senellart

Finding new applications

  • Applications to certifying model counters.
    with Lagniez, Marquis
  • Solving linear programs over databases.
    Nicolas Crosetti’s thesis with Niehren, Ramon, Tison
  • Applications to direct access
    Oliver Irwin’s thesis Salvati
  • Applications to optimization problems.
    with Del Pia and Di Gregorio

Building Circuits

Constraints

Input: constraints FR(x1,x2)S(x1,x3)T(x2,x3)F \coloneq R(x_1, x_2) \wedge S(x_1, x_3) \wedge T(x_2, x_3).

F2R(x1,x2)S(x1,x3)¬T(x2,x3)F_2 \coloneq R(x_1, x_2) \wedge S(x_1, x_3) \wedge \neg T(x_2, x_3).

Output: the set of assignments of variables satisfying every constraint

RR x1x_1 x2x_2
0 0
0 1
2 1
SS x1x_1 x3x_3
0 0
0 2
2 3
TT x2x_2 x3x_3
0 2
1 0
1 2
FF x1x_1 x2x_2 x3x_3
0 0 2
0 1 0
0 1 2
F2F_2 x1x_1 x2x_2 x3x_3
0 0 0
2 1 3
  • Boolean functions: CNF formula, ie, constraints of the form x1¬x2x3x_1 \vee \neg x_2 \vee x_3
  • Database: joining tables

Materialization can be costly. Can we avoid it by constructing circuits?

Building circuits Top Down

Branching algorithm known as exhaustive DPLL:

F=(¬x4x5)(¬x1x2x3)(¬x2¬x3)(x1x4x5)(¬x1¬x4¬x5)(x1x2x3)F = (\neg x_4 \vee x_5) \wedge (\neg x_1 \vee x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) \wedge (x_1 \vee x_4 \vee x_5) \wedge (\neg x_1 \vee \neg x_4 \vee \neg x_5) \wedge (x_1 \vee x_2 \vee x_3)

g N2 x₁ N9 × N2->N9 N3 × N2->N3 N10 x₄ N9->N10 N6 x₂ N9->N6 N11 x₅ N10->N11 N10->N11 N0 0 N11->N0 N1 1 N11->N1 N8 x₃ N6->N8 N7 x₃ N6->N7 N8->N0 N8->N1 N7->N0 N7->N1 N3->N6 N4 x₄ N3->N4 N4->N1 N5 x₅ N4->N5 N5->N0 N5->N0

(¬x4x5)(¬x1x2x3)(¬x2¬x3)(x1x4x5)(¬x1¬x4¬x5)(x1x2x3)(\neg x_4 \vee x_5) \wedge (\neg x_1 \vee x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) \wedge (x_1 \vee x_4 \vee x_5) \wedge (\neg x_1 \vee \neg x_4 \vee \neg x_5) \wedge (x_1 \vee x_2 \vee x_3) (¬x4¬x5)(¬x4x5)(x2x3)(¬x2¬x3)(\neg x_4 \vee \neg x_5) \wedge (\neg x_4 \vee x_5) \wedge (x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) (¬x4¬x5)(¬x4x5)(\neg x_4 \vee \neg x_5) \wedge (\neg x_4 \vee x_5) (x5)(¬x5)(x_5) \wedge (\neg x_5) ()() (x5)(¬x5)(x_5) \wedge (\neg x_5) ()() (x5)(¬x5)(x_5) \wedge (\neg x_5) (¬x4¬x5)(¬x4x5)(\neg x_4 \vee \neg x_5) \wedge (\neg x_4 \vee x_5) (¬x4¬x5)(¬x4x5)(\neg x_4 \vee \neg x_5) \wedge (\neg x_4 \vee x_5) (¬x4¬x5)(¬x4x5)(\neg x_4 \vee \neg x_5) \wedge (\neg x_4 \vee x_5) (x2x3)(¬x2¬x3)\wedge (x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) (x2x3)(¬x2¬x3)(x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) (¬x4¬x5)(¬x4x5)(\neg x_4 \vee \neg x_5) \wedge (\neg x_4 \vee x_5) \wedge (x2x3)(¬x2¬x3)(x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) (¬x4x5)(¬x1x2x3)(¬x2¬x3)(\neg x_4 \vee x_5) \wedge (\neg x_1 \vee x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) \wedge (x1x4x5)(x_1 \vee x_4 \vee x_5) (¬x1¬x4¬x5)\wedge (\neg x_1 \vee \neg x_4 \vee \neg x_5) \wedge (x1x2x3)(x_1 \vee x_2 \vee x_3) (x4x5)(¬x4x5)(x2x3)(¬x2¬x3)(x_4 \vee x_5) \wedge (\neg x_4 \vee x_5) \wedge (x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) (x4x5)(¬x4x5)(x_4 \vee x_5) \wedge (\neg x_4 \vee x_5) (x2x3)(¬x2¬x3)\wedge (x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) (x2x3)(¬x2¬x3)(x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) (x4x5)(¬x4x5)(x2x3)(¬x2¬x3)(x_4 \vee x_5) \wedge (\neg x_4 \vee x_5) \wedge (x_2 \vee x_3) \wedge (\neg x_2 \vee \neg x_3) (¬x4x5)(\neg x_4 \vee x_5) \wedge (¬x1x2x3)(\neg x_1 \vee x_2 \vee x_3) (¬x2¬x3)(x1x4x5)\wedge (\neg x_2 \vee \neg x_3) \wedge (x_1 \vee x_4 \vee x_5) \wedge (¬x1¬x4¬x5)(\neg x_1 \vee \neg x_4 \vee \neg x_5) (x1x2x3)\wedge (x_1 \vee x_2 \vee x_3)

Exhaustive DPLL in practice

Used in practice by many knowledge compiler (d4, sharpSAT, sharpSAT-TD, Ganak etc.).

Exhaustive DPLL and Databases

Collaboration with Oliver Irwin during his thesis :

In this case, the circuit behaves as a compressed table with efficient indexing.

Generalizes and unify previous results by Bringmann, Carmeli, Mengel.

Building circuits bottom-up

OBDD: {𝖽𝖾𝖼}\{\mathsf{dec}\}-circuits with a total order on variables

OBDDs enjoy two properties:

pi = order(F) # choose a "good" order
d = OBDD(1, pi)
for c in F:
    d2 = OBDD(c, pi) # create an OBDD for the clause
    d.apply(d2)  # apply the clause 
    d.minimize() # minimize
return d

Generalizing OBDD

OBDD are not succinct enough: path structure misses a lot of decompositions.

Tree Decision Diagrams (TDD): a new treelike generalization of OBDD.
Chapter 2 of the manuscript; accepted at SAT26 with YooJung Choi, Stefan Mengel, Martín Muñoz, Guy Van den Broecke

g cluster_x1 x₁ cluster_x2 x₂ cluster_x3 x₃ cluster_x4 x₄ cluster_t1 t₁ cluster_t2 t₂ cluster_t3 t₃ x1 x₁ nx1 ¬x₁ x2 x₂ nx2 ¬x₂ x3 x₃ nx3 ¬x₃ x4 x₄ nx4 ¬x₄ Nt1_0 × × Nt1_0:v1->x1 Nt1_0:v0->nx1 Nt1_0:v1->x2 Nt1_0:v0->nx2 Ct1->Cx1 Ct1->Cx2 Nt1_1 × × Nt1_1:v0->x1 Nt1_1:v1->nx1 Nt1_1:v1->x2 Nt1_1:v0->nx2 Nt2_0 × × Nt2_0:v1->x3 Nt2_0:v0->nx3 Nt2_0:v1->x4 Nt2_0:v0->nx4 Ct2->Cx3 Ct2->Cx4 Nt2_1 × × Nt2_1:v0->x3 Nt2_1:v1->nx3 Nt2_1:v1->x4 Nt2_1:v0->nx4 root × × × root:v0->Nt1_0 root:v1->Nt1_1 root:v2->Nt1_1 root:v1->Nt2_0 root:v0->Nt2_1 root:v2->Nt2_1 Ct3->Ct1 Ct3->Ct2

Determinism

TDD must respect the following determinism condition: a pair of siblings can be the input of at most one parent node.

g cluster_x1 x₁ cluster_x2 x₂ cluster_x3 x₃ cluster_x4 x₄ cluster_t1 t₁ cluster_t2 t₂ cluster_t3 t₃ x1 x₁ nx1 ¬x₁ x2 x₂ nx2 ¬x₂ x3 x₃ nx3 ¬x₃ x4 x₄ nx4 ¬x₄ Nt1_0 × × Nt1_0:v1->x1 Nt1_0:v0->nx1 Nt1_0:v1->x2 Nt1_0:v0->nx2 Ct1->Cx1 Ct1->Cx2 Nt1_1 × × Nt1_1:v0->x1 Nt1_1:v1->nx1 Nt1_1:v1->x2 Nt1_1:v0->nx2 Nt2_0 × × Nt2_0:v1->x3 Nt2_0:v0->nx3 Nt2_0:v1->x4 Nt2_0:v0->nx4 Ct2->Cx3 Ct2->Cx4 Nt2_1 × × Nt2_1:v0->x3 Nt2_1:v1->nx3 Nt2_1:v1->x4 Nt2_1:v0->nx4 root × × × root:v0->Nt1_0 root:v1->Nt1_1 root:v2->Nt1_1 root:v1->Nt2_0 root:v0->Nt2_1 root:v2->Nt2_1 Ct3->Ct1 Ct3->Ct2

Wonderful TDDs

T = vtree(F) 
d = TDD(1, T)
for c in F:
    d2 = TDD(c, T) 
    d.apply(d2) 
    d.minimize() 
return d
  • Efficient bottom-up compilation
  • More succinct than OBDD, simpler than SDD
  • Can efficiently represent bounded treewidth instances
    • Proof by upper bounding the canonical TDD size.
    • Gives insight on how to choose the vtree
  • TiDiDi compiler: promising experimental results.

Certifying #SAT Solvers

Trusting the tools

CNF Formula

x¬yzx \vee \neg y \vee z
xy¬wx \vee y \vee \neg w

SAT solver

SAT
because x=0,y=1...x=0,y=1... is a model

UNSAT
Proof deriving a contradiction

CNF Formula

x¬yzx \vee \neg y \vee z
xy¬wx \vee y \vee \neg w

#SAT solver

42 models
Why?

Proving that FF has 42 models:

  • List 42 models
  • Prove that they are the only ones.
  • Does not scale
  • Give a succinct representation CC of all models
  • Prove that CC represents exactly the models of FF
  • Closer to how #SAT solvers work.

Getting a succinct representation

Many #SAT solvers build (implicitly) a {𝖽𝖾𝖼,×}\{\mathsf{dec},\times\}-circuit by applying Exhaustive DPLL.

CNF Formula

(¬x4x5)(\neg x_4 \vee x_5)

(¬x1x2x3)(\neg x_1 \vee x_2 \vee x_3)

(¬x2¬x3)(\neg x_2 \vee \neg x_3)

(x1x4x5)(x_1 \vee x_4 \vee x_5)

(¬x1¬x4¬x5)(\neg x_1 \vee \neg x_4 \vee \neg x_5)

(x1x2x3)(x_1 \vee x_2 \vee x_3)

#SAT solver

g N2 x₁ N9 × N2->N9 N3 × N2->N3 N10 x₄ N9->N10 N6 x₂ N9->N6 N11 x₅ N10->N11 N10->N11 N0 0 N11->N0 N1 1 N11->N1 N8 x₃ N6->N8 N7 x₃ N6->N7 N8->N0 N8->N1 N7->N0 N7->N1 N3->N6 N4 x₄ N3->N4 N4->N1 N5 x₅ N4->N5 N5->N0 N5->N0
8 models

Certifying the model count boils down to certifying that the circuit has the same models as the CNF.

Hardness of proving equivalence

Given a CNF formula FF and the circuit CC produced by a #SAT-solver:

We need a device for making FCF \Rightarrow C easy to check.

Annotating \bot-gates

We want to check FCF \Rightarrow C or equivalently ¬C¬F\neg C \Rightarrow \neg F: explain \bot-gates!

G x x xy1 y₁ x->xy1 t × x->t c6 c₆ xy1->c6 top0 xy1->top0 y1 y₁ t->y1 z1 z₁ t->z1 y2 y₂ y1->y2 y20 y₂ y1->y20 c0 c₀ y2->c0 top1 y2->top1 c1 c₁ y20->c1 top2 y20->top2 z2 z₂ z1->z2 z20 z₂ z1->z20 z3 z₃ z2->z3 c2 c₂ z2->c2 z30 z₃ z20->z30 c3 c₃ z20->c3 z4 z₄ z3->z4 c4 c₄ z3->c4 z30->z4 top4 z30->top4 c5 c₅ z4->c5 top3 z4->top3
  • c0:=¬x¬y1y2c_0 := \neg x \vee \neg y_1 \vee y_2
  • c1:=¬xy1¬y2c_1 := \neg x \vee y_1 \vee \neg y_2
  • c2:=¬x¬z1z2c_2 := \neg x \vee \neg z_1 \vee z_2
  • c3:=¬xz1¬z2c_3 := \neg x \vee z_1 \vee \neg z_2
  • c4:=¬x¬z2z3c_4 := \neg x \vee \neg z_2 \vee z_3
  • c5:=¬x¬z3z4c_5 := \neg x \vee \neg z_3 \vee z_4
  • c6:=xy1c_6 := x \vee y_1

kcps proof system! [SAT, 2019]

Syntactic Entailment

Circuits produced by #SAT-solvers on input FF have a specific form:

We use this idea to output certify d4 [C., Lagniez, Marquis, AAAI 2021].

F=(xy1)(¬xy2)(y1¬y2)(¬y1y2)F = (x \vee y_1) \wedge (\neg x \vee y_2) \wedge (y_1 \vee \neg y_2) \wedge (\neg y_1 \vee y_2).

G x x y1 y₁ x->y1 x->y1 y2 y₂ y1->y2 bot1 y1->bot1 top y2->top bot2 y2->bot2 G x x y1 y₁ x->y1 y01 y₁ x->y01 y2 y₂ y1->y2 bot1 y1->bot1 y01->y2 bot3 y01->bot3 top1 y2->top1 bot2 y2->bot2

F[x]=y2(y1¬y2)(¬y1y2)y1(y1¬y2)(¬y1y2)=F[¬x]F[x] = y_2 \wedge (y_1 \vee \neg y_2) \wedge (\neg y_1 \vee y_2) \neq y_1 \wedge (y_1 \vee \neg y_2) \wedge (\neg y_1 \vee y_2) = F[\neg x]

F[x,y1]=F[¬x,y1]F[x,y_1] = F[\neg x, y_1]

Proof System Landscape

G CLIP CLIP CPOG CPOG CLIP->CPOG cpogd CPOG (Decision) CPOG->cpogd micesem MICE (Semantic) cpogd->micesem micesync MICE (Reference) micesem->micesync kcpsRes kcps(Res) micesem->kcpsRes mice MICE micesync->mice T_sparse T_sparse mice->T_sparse kcps kcps mice->kcps T_dense T_dense T_sparse->T_dense cdecdnnf C-dec-DNNF cdecdnnf->micesync kcpsRes->mice kcpsRes->kcps
  • Many proof systems for #SAT boils down to certifying FCF \Rightarrow C.
  • Insight of Chapter 3 and [Beyersdorff, Hoffmann, Kasche 2026]: MICE is a particular form of syntactic equivalence

CLIP: [Chede, Chew, Shukla 2024]

CPOG: [Bryant, Nawrocki, Avigad, Heule 2023]

MICE: [Fichte, Hecher, Roland 2022]

MICE (Semantic/Reference): [Beyersdorff, Hoffmann, Kasche 2026]

Tsparse/TdenseT_{sparse}/T_{dense}: [Beyersdorff, Giesen, Goral, Hoffmann, Kasche, Staudt 2026]

Convex Optimization

Optimizing Boolean function

Optimization on Boolean functions:

Naive formulation:

maxi=1nαixi+βi(1xi)\max \sum_{i=1}^n \alpha_i x_i + \beta_i(1-x_i)
s.t.(x1,,xn)f\text{s.t}.~(x_1,\dots,x_n) \models f

Relaxed formulation

maxi=1nαixi+βi(1xi)\max \sum_{i=1}^n \alpha_i x_i + \beta_i(1-x_i)
s.t.(x1,,xn)conv(f)\text{s.t}.~(x_1,\dots,x_n) \in conv(f)

ff xx yy
v0\vec{v}_0 0 0
v1\vec{v}_1 1 0
v2\vec{v}_2 0 1
Convex hull of a Boolean function

Both problem have the same optimal value. Can we describe conv(f)conv(f) with a small number of linear constraints?

OBDD

x x y0 y x->y0 e₂ y1 y x->y1 e₁ z0 z y0->z0 e₆ z1 z y0->z1 e₅ y1->z0 e₃ y1->z1 e₄ t z0->t e₇ z1->t e₈

Complete OBDD: models = paths.

  • x=1,y=1,z=1x=1, y=1, z=1.
  • e1=e3=e7=1e_1=e_3=e_7=1,
  • e2=e4=e5=e6=e8=0e_2=e_4=e_5=e_6=e_8=0
  • x=1/3x=1/3 y=z=2/3y=z=2/3
  • e1=e3=e5=e6=e8=1/3e_1=e_3=e_5=e_6=e_8=1/3 e2=e7=2/3e_2=e_7=2/3
  • e4=0e_4=0

Integer linear constraints describing paths:

1=e1+e21 = e_1+e_2 x=e1x = e_1
e1=e6+e7e_1 = e_6+e_7 y=e3+e5y = e_3+e_5
e2=e5+e6e_2 = e_5+e_6 z=e7z = e_7
e2=e5+e6e_2 = e_5+e_6
e3+e6=e7e_3+e_6=e_7
e5+e4=e8e_5+e_4=e_8
e1{0,1},,e8{0,1}e_1 \in \{0,1\}, \dots, e_8 \in \{0,1\} e1[0,1],,e8[0,1]e_1 \in [0,1], \dots, e_8 \in [0,1]

Projection of the linear program on (x,y,z)(x,y,z) is conv(f)conv(f).

Extension complexity of OBDD

Credit to Stephane Caron

If f(x1,,xn)f(x_1,\dots,x_n) is computed by an OBDD having mm edges, conv(f)conv(f) can be describe with O(n+m)O(n+m) linear contraints.

Such system is called an extended formulation of conv(f)conv(f).

Extension Complexity of {,×}\{\cup,\times\}-circuits

out a1 × a1->out a2 × a2->out o1 o1->a2 a11 × a11->o1 a12 × a12->a1 a12->o1 x1 x₁ x1->a11 nx1 ¬x₁ nx1->a12 x2 x₂ x2->a11 x2->a12 x3 x₃ a21 × x3->a21 nx3 ¬x₃ a22 × nx3->a22 x4 x₄ x4->a21 nx4 ¬x₄ nx4->a22 o21 o21->a1 a21->a2 a21->o21 a22->o21
  • Write linear program encoding proof trees
  • Relax in [0,1][0,1].
  • Show that the linear program is integral (***)

If f(x1,,xn)f(x_1,\dots,x_n) is computed by an {,×}\{\cup,\times\}-circuit having mm edges, conv(f)conv(f) can be describe with O(n+m)O(n+m) linear contraints.

Applications

Binary Polynomial Optimization

maxIαIiIxi(x1,,xn){0,1}n\max \sum_I \alpha_I \prod_{i\in I} x_i \qquad~~~ (x_1,\dots,x_n) \in \{0,1\}^n

  • Compile to {,×}\{\cup,\times\}-circuit.
  • Extract extended formulation!
  • PoC with d4.

Collaboration with Alberto Del Pia and Silvia Di Gregorio.

CQ and Linear programs

  • Linear programs whose variables are the answers of a Conjunctive Query.
  • Compile into {×,}\{\times,\uplus\}-circuits.
  • Solve smaller linear program!

Nicolas Crosetti’s thesis (collaboration with Joachim Niehren and Jan Ramon).

MSO Optimization

  • Monadic Second Order Logic.
  • Known representation in {,×}\{\uplus,\times\}-circuits
  • Give extended formulations for such problems (e.g., vertex cover)

Recover results from “Extension complexity, MSO logic, and treewidth.” by Kolman, Koutecký and Tiwary.

Conclusion

Knowledge Compilation is fun!

Unifying and natural framework.