Sparsification -- the branching tree #
A deterministic choice (chooseBranch) turns the procedure into a binary tree. A word
w : List Bool names the node reached by taking the heart (false) or petal (true) branch
at each step (walk); a leaf word is one whose proper prefixes reach non-sparse nodes and
which itself reaches a sparse node (IsLeafWord). Every leaf word yields a Path with the same
length and the same petal steps (exists_path_of_isLeafWord).
Every solution of the root reaches a leaf containing it (exists_isLeafWord_sat, by induction on
the potential). The leaves are recovered from the positions of their petal steps: following any
branch sequence f : ℕ → Bool until a sparse node is reached (walkSeq) ends at the leaf of
every leaf word that agrees with f (walkSeq_eq_walk).
The deterministic branching choice: a valid choice if there is one.
Equations
Instances For
The node reached along a word of branches.
Equations
- Complexity.ClauseSet.Sparsify.walk θ x✝ [] = x✝
- Complexity.ClauseSet.Sparsify.walk θ x✝ (b :: w) = Complexity.ClauseSet.Sparsify.walk θ (Complexity.ClauseSet.Sparsify.step θ x✝ b) w
Instances For
A leaf word: its proper prefixes reach non-sparse nodes and it reaches a sparse node.
Equations
Instances For
Follow the branch sequence f for at most n steps, stopping at a sparse node.
Equations
- One or more equations did not get rendered due to their size.
- Complexity.ClauseSet.Sparsify.walkSeq θ 0 x✝¹ x✝ = x✝¹
Instances For
Following a branch sequence that agrees with a leaf word, for at least as many steps, ends at that leaf.
A leaf word is a branch. It yields a Path with the same length, ending in a sparse node,
whose petal steps are the positions of true in the word.