Documentation

Complexitylib.Circuits.DecisionTree.Path

Canonical deepest paths in finite decision trees #

Every finite decision tree has a deterministically chosen deepest path whose length is exactly the tree depth. For path-read-once trees, every prefix of that path is an embedding into the input coordinates.

Complementing the leaves preserves the path-read-once property.

The chosen deepest path has length exactly equal to tree depth.

theorem Complexity.DecisionTree.On.mem_vars_of_mem_deepPath {N : } (tree : On N) (query : Fin N × Bool) (hquery : query tree.deepPath) :
query.1 tree.vars

Every query on the chosen path occurs in the tree's variable set.

theorem Complexity.DecisionTree.On.nodup_deepPathVars {N : } (tree : On N) (readOnce : tree.PathReadOnce) :

A path-read-once tree has no repeated query on its chosen deepest path.

A path-read-once tree has depth at most the number of distinct variables it queries anywhere.