Self-dual

Self-Duality Problem
Mustafa Altun
Electrical & Computer Engineering
University of Minnesota
Advisor: Marc D. Riedel
Boolean duality
Famous unsolved problem
(self-duality problem):
Time complexity of testing
whether a monotone
Boolean function in IDNF
is self-dual.
Monotone: No negation
IDNF: Irredundant form
Self-dual: f = f D= f (x1, x2, … ,xk)
Boolean duality
Consider a monotone self-dual Boolean
function f in IDNF with k variables and n
disjuncts:
Lemma (Fredman and Khachiyan, 1996;
Gaur and Krishnamurti, 2008): k ≤ n2..
Theorem (Altun and Riedel, 2012): k ≤ n.
Number of disjuncts vs. variables

Matching between a variable x and a disjunct
D: There is a matching between x and D if x is
a variable of D.

Example: if D = x 1x2 then there is a matching
between x 1 and D as well as x 2 and D.
Theorem (Altun and Riedel, 2012) : Consider a
monotone Boolean function f in IDNF. If f is selfdual then each variable of f can be matched with
a distinct disjunct.
Corollary: k ≤ n
Number of disjuncts vs. variables
Example: Consider a monotone self-dual Boolean function

Three variables

Three disjuncts
x1
x1 x2
x2
x2 x3
x3
x1 x3
Number of disjuncts vs. variables
Example: Consider a monotone self-dual Boolean function

Six variables

Seven disjuncts
x1
x2
x3
x4
x5
x6
x1
x2
x1
x2
x1
x3
x3
x2 x3
x3 x6
x3 x4
x4 x5
x5 x6
x4 x6
x5
k≤n
Boolean duality
Self-duality problem for monotone
Boolean functions with n variables
and n disjuncts; k = n.
Our algorithm runs in O(n3) time.
Self-duality problem
The Algorithm
Input: A monotone Boolean function f in IDNF with n variables n disjuncts.
Output: If f is self-dual then “YES”; otherwise “NO”.
1. If f is a single variable Boolean function then return “YES”.
2. If f is a specific Boolean function shown below then return “YES”.
• This function represents the fano plane with 7 variables and disjuncts.
3. If the intersection property does not hold for f then return “NO”.
•
If intersection property holds for f then every pair of disjuncts has a nonempty intersection.
4. If f does not have two disjuncts of size two, xaxb and xaxc then return “NO”;
if it does then obtain a new function f = fxb=xc in IDNF. Repeat this step until f
consists of a single variable; in this case, return “YES”.
Self-duality problem
Example: Consider a monotone Boolean function

Seven variables and seven disjuncts; n=7.

Apply step four; xa=x1, xb=x2, and xc=x3; f = fxb=xc = fx2=x3 :

Apply step four; xa=x3, xb=x1, and xc=x4; f = fxb=xc = fx1=x4 :
The Algorithm


1.
If f isstep
a single
function
return “YES”.
Apply
four:variable
no twoBoolean
disjuncts
of sizethen
two.
2.
If f represents
plane then return “YES”.
Returns
“NO”; fthe
is Fano
not self-dual.
3. If the intersection property does not hold for f then return “NO”.
4.
4. IfIf ff does
does not
not have
have two
two disjuncts
disjuncts of
of size
size two,
two, xxaaxxbb and
and xxaaxxcc then
then return
return “NO”;
“NO”;
ifif itit does
in IDNF. Repeat this step until f
does then
then obtain
obtain aa new
new function
function ff == ffxxbb=x
=xcc in IDNF. Repeat this step until f
consists
consists of
of aa single
single variable;
variable; in
in this
this case,
case, return
return “YES”.
“YES”.
Future work

Monotone self-duality problem for
different k-n relations.
Self-duality problem:
Testing whether a
monotone Boolean function
in IDNF is self-dual.
Thank you!