UnateQ

UnateQ[bexpr,{x1,x2,}]

tests whether the Boolean expression bexpr is positive unate in the variables x1, x2, .

UnateQ[bexpr,{¬x1,¬x2,}]

tests whether the Boolean expression bexpr is negative unate in the variables x1, x2, .

Details

  • A positive unate Boolean function is also known as a Boolean increasing function.
  • A negative unate Boolean function is also known as a Boolean decreasing function.
  • The Boolean expression bexpr is positive unate in the variable xi if Boole[bexpr/.xi->False]Boole[bexpr/.xi->True] for all values of other variables.
  • The Boolean expression bexpr is negative unate in the variable xi if Boole[bexpr/.xi->False]Boole[bexpr/.xi->True] for all values of other variables.
  • Any combination of variables and their negation can be used.
  • UnateQ[bf,{ind1,ind2,}] tests whether the Boolean function bf is unate in variable k according to the indicator indk.
  • The indicators indk can take the following values:
  • True,1test for positive unate
    False,0test for negative unate
    _do not test for unateness

Examples

open allclose all

Basic Examples  (2)

Test if a Boolean expression is positive unate:

Test if a Boolean expression is negative unate:

Scope  (5)

Test for positive unateness:

Negative unateness:

Test for unateness in one variable:

Test for positive unate in one variable, negative unate in another:

Check for unateness of a pure function:

Test for negative unateness in the first variable and positive unateness in the second:

Test for whether a function is positive unate in its first and last variables:

Applications  (2)

Enumerate all unate functions of three variables:

ReliabilityDistribution only takes positive unate functions:

Find out which variables are not positive unate:

Remove x4 by setting it to False:

Properties & Relations  (6)

Basic positive unate functions:

Basic negative unate functions:

Implies is negative unate in one variable and positive unate in the other:

Some Boolean functions are not unate in any variable:

The fraction of Boolean functions that are positive unate for dimension :

Combinations of positive unate functions are unate:

Combinations of negative unate functions are not necessarily negative unate:

The negation of a positive unate function is negative unate:

Neat Examples  (1)

Show in how many variables each Boolean function with three variables is positive unate:

Introduced in 2012
 (9.0)