Circuit-family outputs as formula families -- proof internals #
theorem
Complexity.Circuit.depth_eq_outputDepth_zero_internal
{N G : ℕ}
[NeZero N]
(circuit : Circuit Basis.andOr2 N 1 G)
:
theorem
Complexity.CircuitFamily.eval_outputFormulaFamily_internal
(F : CircuitFamily Basis.andOr2)
(n : ℕ)
(assignment : ℕ → Bool)
:
BoolFormula.eval assignment (F.outputFormulaFamily n) = F.function n fun (input : Fin n) => assignment ↑input
theorem
Complexity.CircuitFamily.depth_outputFormulaFamily_le_internal
(F : CircuitFamily Basis.andOr2)
(n : ℕ)
:
theorem
Complexity.CircuitFamily.outputFormulaFamily_variables_lt_internal
(F : CircuitFamily Basis.andOr2)
(n index : ℕ)
(hindex : index ∈ (F.outputFormulaFamily n).vars)
:
theorem
Complexity.CircuitFamily.outputFormulaFamily_computes_internal
{F : CircuitFamily Basis.andOr2}
{f : BoolFunFamily}
(hcomputes : F.Computes f)
:
theorem
Complexity.CircuitFamily.outputFormulaFamily_logDepth_internal
{F : CircuitFamily Basis.andOr2}
{c : ℕ}
(hdepth : F.DepthBoundedBy fun (n : ℕ) => c * Nat.log 2 n + c)
: