# logic – Effective method for generating the smoothing function

The function of smoothing a Boolean function with respect to one of its variables is the disjunction of its cofactors. For example, given a Boolean function F (a, b, c), the cofactors with respect to a are F (0, b, c) and F (1, b, c), the function of smoothing screws to one is therefore G (b, c) = F (0, b, c) + F (1, b, c).

Now, given a circuit for F, a simple method for creating the circuit for G is to make two copies of the circuit for F, to wire the inputs for a as 0 and 1 in both circuits respectively, and then OR to the outputs. However, this will double the number of doors needed. If multiple variables are to be used, the size of the resulting circuit increases exponentially with the number of deleted variables. What bothers me most is that we create simpler functions (judging by the number of variables and therefore the size of the truth table) with an increasing number of gates. This leads me to think that there may be a well-known way to create a circuit for the smoothing function using fewer gates than in the original circuit.

For the purpose of this question, suppose the truth tables are too large to enumerate and the functions considered are not linear.

Posted on