Documentation

Complexitylib.Circuits.DecisionTree.NormalForm.Internal

Compiling finite decision trees to CNF and DNF -- proof internals #

theorem Complexity.DecisionTree.On.eval_toDNF_internal {N : } (tree : On N) (input : BitString N) :
tree.toDNF.eval input = eval input tree
theorem Complexity.DecisionTree.On.eval_toCNF_internal {N : } (tree : On N) (input : BitString N) :
tree.toCNF.eval input = eval input tree
theorem Complexity.DecisionTree.On.eval_anyDNF_internal {N : } (trees : List (On N)) (input : BitString N) :
(anyDNF trees).eval input = trees.any fun (tree : On N) => eval input tree
theorem Complexity.DecisionTree.On.eval_allCNF_internal {N : } (trees : List (On N)) (input : BitString N) :
(allCNF trees).eval input = trees.all fun (tree : On N) => eval input tree
theorem Complexity.DecisionTree.On.width_anyDNF_le_internal {N : } (trees : List (On N)) (bound : ) (hbound : treetrees, tree.depth bound) :
(anyDNF trees).width bound
theorem Complexity.DecisionTree.On.width_allCNF_le_internal {N : } (trees : List (On N)) (bound : ) (hbound : treetrees, tree.depth bound) :
(allCNF trees).width bound
theorem Complexity.DecisionTree.On.complexity_anyDNF_le_internal {N : } (trees : List (On N)) (bound : ) (hbound : treetrees, tree.depth bound) :
(anyDNF trees).complexity trees.length * 2 ^ bound
theorem Complexity.DecisionTree.On.complexity_allCNF_le_internal {N : } (trees : List (On N)) (bound : ) (hbound : treetrees, tree.depth bound) :
(allCNF trees).complexity trees.length * 2 ^ bound