Read-once De Morgan formulas and unateness #
A read-once formula uses each input at most once, including through negation. It is unate: each input has a fixed direction of influence over all contexts. The substitution API is used to recover read-once formulas from tight shared circuits.
A Boolean function has a fixed increasing or decreasing direction at a coordinate.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every input has a fixed direction of influence, possibly a different direction for each input.
Equations
- Algebraic.DeMorgan.Unate function = ∀ (i : Fin n), Algebraic.DeMorgan.UnateAt function i
Instances For
Every monotone Boolean function is unate.
Input occurrences in a formula, preserving repetitions and their order.
Equations
Instances For
A formula is read-once when no input occurrence is repeated.
Instances For
Substitute an arbitrary formula for each input.
Equations
- (Algebraic.DeMorgan.Expression.input i).substitute replacement = replacement i
- (Algebraic.DeMorgan.Expression.constant value).substitute replacement = Algebraic.DeMorgan.Expression.constant value
- child.not.substitute replacement = (child.substitute replacement).not
- (left.and right).substitute replacement = (left.substitute replacement).and (right.substitute replacement)
- (left.or right).substitute replacement = (left.substitute replacement).or (right.substitute replacement)
Instances For
Formula substitution composes the corresponding Boolean functions.
Substitution replaces each input occurrence by the occurrences of its replacement.
Changing an absent input leaves the formula value unchanged.
A read-once De Morgan formula is unate, including formulas with internal negations.