Documentation

Complexitylib.Circuits.AC0.Restriction

Restricting negation-normal AC0 formulas #

Finite-arity restrictions substitute fixed literals by constants while retaining the unbounded connective tree. Evaluation commutes with this operation, tree size and depth are preserved exactly, and variable support is filtered to the free variables.

Apply a finite-arity restriction to an AC0 formula.

Equations
Instances For

    Apply a restriction to every formula in a forest.

    Equations
    Instances For
      theorem Complexity.AC0Formula.eval_restrict {N : } (restriction : Restriction.On N) (input : BitString N) (formula : AC0Formula N) :
      eval input (restrict restriction formula) = eval (restriction.applyTo input) formula

      Evaluation commutes with restricting an AC0 formula.

      theorem Complexity.AC0Formula.evalAll_restrictForest {N : } (restriction : Restriction.On N) (input : BitString N) (formulas : AC0Forest N) :
      evalAll input (restrictForest restriction formulas) = evalAll (restriction.applyTo input) formulas

      Conjunctive forest evaluation commutes with restriction.

      theorem Complexity.AC0Formula.evalAny_restrictForest {N : } (restriction : Restriction.On N) (input : BitString N) (formulas : AC0Forest N) :
      evalAny input (restrictForest restriction formulas) = evalAny (restriction.applyTo input) formulas

      Disjunctive forest evaluation commutes with restriction.

      theorem Complexity.AC0Formula.size_restrict {N : } (restriction : Restriction.On N) (formula : AC0Formula N) :
      (restrict restriction formula).size = formula.size

      Restriction preserves total syntax-tree size exactly.

      theorem Complexity.AC0Formula.forestSize_restrictForest {N : } (restriction : Restriction.On N) (formulas : AC0Forest N) :
      forestSize (restrictForest restriction formulas) = forestSize formulas

      Restriction preserves total forest size exactly.

      theorem Complexity.AC0Formula.depth_restrict {N : } (restriction : Restriction.On N) (formula : AC0Formula N) :
      (restrict restriction formula).depth = formula.depth

      Restriction preserves connective depth exactly.

      theorem Complexity.AC0Formula.forestDepth_restrictForest {N : } (restriction : Restriction.On N) (formulas : AC0Forest N) :
      forestDepth (restrictForest restriction formulas) = forestDepth formulas

      Restriction preserves maximum forest depth exactly.

      theorem Complexity.AC0Formula.vars_restrict {N : } (restriction : Restriction.On N) (formula : AC0Formula N) :
      (restrict restriction formula).vars = {indexformula.vars | restriction index = none}

      Restriction removes exactly the variables it fixes.

      theorem Complexity.AC0Formula.forestVars_restrictForest {N : } (restriction : Restriction.On N) (formulas : AC0Forest N) :
      forestVars (restrictForest restriction formulas) = {indexforestVars formulas | restriction index = none}

      Forest support is filtered to the free variables by restriction.