Essential Inputs #
This module defines the notion of essential (non-redundant) input variables for a Boolean function.
Main definitions #
IsEssentialInput— a function depends on a particular input variableEssentialInputs— the set of essential input variables
A function f depends on input variable i if flipping that bit
can change some output.
Equations
- CircuitComplexity.IsEssentialInput f i = ∃ (x : CircuitComplexity.BitString N), f x ≠ f (Function.update x i !x i)
Instances For
@[implicit_reducible]
instance
CircuitComplexity.instDecidableIsEssentialInput
{N M : ℕ}
{f : BitString N → BitString M}
{i : Fin N}
:
Decidable (IsEssentialInput f i)
The set of input variables that f depends on.