Extension Complexity and the Convex Hull of Boolean Functions

Florent Capelli, Silvia Di Gregorio, Alberto Del Pia

CRIL, Université d’Artois

Shonan Meeting on Model Counting

February 5, 2026

Convex Hull of Boolean Functions

A picture is worth a thousand maybe two slides

ff xx yy
v→0\vec{v}_0 0 0
v→1\vec{v}_1 1 0
v→2\vec{v}_2 0 1

Convex Hull conv(f)conv(f) of ff: every convex combination of its models. Here :

λ0v→0+λ1v→1+λ2v→2\lambda_0 \vec{v}_0 + \lambda_1 \vec{v}_1 + \lambda_2 \vec{v}_2

with λ0+λ1+λ2=1\lambda_0+\lambda_1+\lambda_2=1 are positive real numbers.

Eg (1/3,1/3)({1/3}, {1/3}) is obtained as (v→0+v→1+v→2)/3(\vec{v}_0+\vec{v}_1+\vec{v}_2)/3.

Convex Hull and Polyhedron

conv(f)⊆[0,1]nconv(f) \subseteq [0,1]^n is a bounded polyhedron.

(x1,…,xn)=∑τ⊨fλττ→(x_1,\dots,x_n) = \sum_{\tau \models f} \lambda_\tau \vec\tau

with ∑τ⊨fλτ=1\sum_{\tau \models f} \lambda_\tau = 1
λτ≥0\lambda_\tau \geq 0.

Definition by linear constraints

x1=∑τ⊨f|x1=1λτx_1 = \sum_{\tau \models f|_{x_1=1}} \lambda_\tau
…\dots
xn=∑τ⊨f|xn=1λτx_n = \sum_{\tau \models f|_{x_n=1}} \lambda_\tau
∑τ⊨fλτ=1\sum_{\tau \models f} \lambda_\tau = 1
λτ≥0\lambda_\tau \geq 0.

Direct definition

x=λ1x = \lambda_1
y=λ2y = \lambda_2
λ0+λ1+λ2=1\lambda_0+\lambda_1+\lambda_2=1
λ0≥0,λ1≥0,λ2≥0\lambda_0\geq 0,\lambda_1\geq 0,\lambda_2\geq 0

A smaller definition

x+y≤1x+y \leq 1
x≥0x \geq 0
y≥0y \geq 0

Extreme points

A point in a convex set that is not a combination of any other points.

  • Minkowski-Weyl: bounded polyhedron = convex hull of their extreme points
  • Extreme points of conv(f)conv(f) = models of ff
  • max⁡∑iaixi,s.t.(x1,…,xn)∈𝒞\max \sum_i a_i x_i,~s.t.~(x_1,\dots,x_n) \in \mathcal{C} reaches maximum on an extreme point.
    • max⁡x+y\max x+y? Yellow line.
    • max⁡2y+x\max 2y+x? Only at x=1.5,y=1.5x=1.5, y=1.5.

Why bother?

Optimization on Boolean functions: weighted model counting over (max⁡,+)(\max,+)-semiring.

Naive formulation:

max⁡∑i=1nαixi+βi(1−xi)\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

max⁡∑i=1nαixi+βi(1−xi)\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)

We know that the optimal value is reached on an extreme point, hence at a model of ff.

Both version have the same optimal value.

The definition of conv(f)conv(f) involves n+#fn+\#f variables.

Not better than going over every model of ff.

Extension Complexity

Challenge: find a succinct representation of conv(f)conv(f).

Credit to Stephane Caron

Extension complexity: write a polyhedron on dimension nn as the projection of a polyhedron on dimension n+Kn+K. Smallest possible KK.

  • conv(f)conv(f): we know how to do K=#fK = \#f. Can we do better?
  • Extension complexity of ff!

Extension Complexity of OBDD

OBDD and paths

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.

Path corresponds to

  • 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,y=1,z=1x=1, y=1, z=1.

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\}

Relaxing paths

x x y0 y x->y0 e₂=2/3 y1 y x->y1 e₁=1/3 z0 z y0->z0 e₆=1/3 z1 z y0->z1 e₅=1/3 y1->z0 e₃=1/3 y1->z1 e₄ t ⊤ z0->t e₇=2/3 z1->t e₈=1/3

Corresponds to point x=1/3,y=2/3,z=2/3x = 1/3, y=2/3, z=2/3, or convex combination:

(1/3)⋅(1,1,1)+(1/3)⋅(0,1,0)+(1/3)⋅(0,0,1) (1/3) \cdot (1,1,1)+ (1/3) \cdot (0,1,0) + (1/3) \cdot (0,0,1)

Solutions to the relaxed program = flows

Integral solutions = models

Extreme points of flows are integral.

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

Relax previous program:

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∈e_1 \in [0,1], …,e8∈\dots, e_8 \in [0,1]

Wrap up on OBDD

If f(x1,…,xn)f(x_1,\dots,x_n) is computed by an OBDD of size CC having mm edges, conv(f)conv(f) can be describe with n+mn+m contraints (expressing, intuitively, a source-sink flow in the OBDD).

Application:

Extension Complexity of DNNF

DNNF and Proof trees

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

Smooth DNNF: models = proof tree

  • Pick one edge for ∨\vee-gates
  • Both edges for ∧\wedge-gates
  • Until inputs reached: x1=0,x2=1,x3=1,x4=1x_1=0, x_2=1, x_3=1, x_4=1

Linear program encoding of proof trees

One variable e∈{0,1}e \in \{0,1\} per edge of the DNNF:

f1 f2 ... f3 o ∨ o->f1 f₁ o->f2 fⱼ=1 o->f3 fₚ e1 e1->o e₁ e2 ... e2->o eᵢ=1 e3 e3->o eₖ

Encoding ∨\vee-gates:

  • one output edge is selected
  • exactly one input edge is selected

f1+…+fp=e1+…+ekf_1 + \dots + f_p = e_1 + \dots + e_k


f1 f2 ... f3 o ∧ o->f1 f₁ o->f2 fⱼ=1 o->f3 fₚ e1 e1->o e₁=1 e2 ... e2->o eᵢ=1 e3 e3->o eₖ=1

Encoding ∧\wedge-gates:

  • one output edge is selected
  • every input edge is selected

f1+…+fp=eif_1 + \dots + f_p = e_i for every i≤ki \leq k


f1 f2 ... f3 o x o->f1 f₁ o->f2 fⱼ=1 o->f3 fₚ

Encoding the model:

x=f1+…+fpx = f_1 + \dots + f_p

Linear program : relaxation

Relax e∈{0,1}e \in \{0,1\} to e∈[0,1]e \in [0,1].

We can show that the relaxed program is integral: every extreme point has integer coordinates.

It is an extended formulation of conv(f)conv(f)!

Applications

Binary Polynomial Optimization

max⁡∑IαI∏i∈Ixi(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

Boolean function encoding:

⋀I(yI⇔⋀i∈Ixi)\bigwedge_{I} (y_I \Leftrightarrow \bigwedge_{i \in I} x_i)

MSO Optimization

3COL(C1,C2,C3)=∀x.(x∈C1∨x∈C2∨x∈C3)∧⋀i=13∀x∀y(Ci(x)∧Ci(y)⇒¬E(x,y)) 3COL(C_1, C_2, C_3) = \forall x. (x \in C_1 \vee x \in C_2 \vee x \in C_3) \wedge \bigwedge_{i=1}^3 \forall x \forall y (C_i(x) \wedge C_i(y) \Rightarrow \neg E(x,y))

[1] Kolman, Petr, Martin Koutecký, and Hans Raj Tiwary. “Extension complexity, MSO logic, and treewidth.” Discrete Mathematics & Theoretical Computer Science 22.Discrete Algorithms (2020).

Conclusion

Take home message

A model counting question

FPRAS:

What about extended formulations of conv(f)conv(f)?

Futur work