You are on page 1of 17

Tautology Checking

Using Unate Recursive Paradigm


Ranga Vemuri
University of Cincinnati

1
Unate Covers
• A cover F is positive unate (negative unate) in a variable x
provided F has no zeros (ones) in column x.
• A cover F is unate if F is positive unate or negative unate in every
variable.

2
Tautology Checking – Special Case 1
• Theorem:
Let F be a cover with n variables.
If the total number of minterms covered by F is less
than 2n then F is not a tautology.

3
Tautology Checking – Special Case 2
• Theorem:
Let F be a cover with no –’s.
If the total number of minterms covered by F is exactly
2n then F is a tautology.

4
Tautology Checking – Special Case 3
• Theorem:
Let F be a cover.
If F contains a column of all 0’s or all 1’s, then F is not a
tautology.

5
Unate Reduction – 1a
• Theorem:
Let F be a positive unate cover (positive in all variables).
Then F≡1 if and only if it explicitly contains a row of all –’s. (ie.
explicitly contains the universal cube aka. the tautologous cube).

6
Unate Reduction – 1b
• Theorem:
Let F be a negative unate cover (negative in all variables).
Then F≡1 if and only if it explicitly contains a row of all –’s.

7
Unate Reduction – 1c
• Theorem:
Let F be a unate cover (positive in some variables and negative in
all others).
Then F≡1 if and only if it explicitly contains a row of all –’s.

8
Unate Reduction – 2a
• Theorem:
Let F be a cover matrix.
Let x be a positive unate variable in F.
Then F≡1 if and only if Fx’ ≡1

9
Unate Reduction – 2b
• Theorem:
Let F be a cover matrix.
Let x be a negative unate variable in F.
Then F≡1 if and only if Fx ≡1

10
General Unate Reduction Theorem
U F1 
If cover F can be rearranged such that F =
 D F 2
 
where, U are unate columns and D is a matrix of –’s.
Then, F≡1 if and only if F2 ≡ 1

11
Corollary to General Unate Reduction
If F can be rearranged such that F = [U B] where U are unate
columns and B are binate columns then if U has no rows of all –’s
then F ≡ 1.

12
Corollary to General Unate Reduction
If F can be rearranged such that F = [U B] where U are unate
columns and B are binate columns then if U has no rows of all –’s
then F ≡ 1.

12
Component Reduction

13
Tautology Checking Algorithm
T: {true, false, undecided}
tautology(F)
begin
T = special_cases(F);
if (T = undecided) then (T, F) = unate_reduction(F);
if (T = undecided) then (T, F) = component_reduction(F);
if (T ≠ undecided) then return T;
j = binate_variable_select(F);
if tautology(Fj) = false then return false;
if tautology(Fj’) = false then return false;
return true;
end

14
Example

15
Example

16

You might also like