OAI/Combinatorics/LowSpaceSubsetSum/Counting/CountedSubsets.lean
9 declarations, 0 contain sorry, 0 declared as axioms
Output-sensitive fixed-cardinality subset generation
Infeasible recursive branches are pruned before they recurse. The work counter charges the feasibility scan, recursive calls, append and map; this avoids charging all subsets of a block when only one cardinality is needed.
- def
OAI.LowSpaceSubsetSum.CountedSubsets.allline 16 - theorem
OAI.LowSpaceSubsetSum.CountedSubsets.all_valueline 22 - theorem
OAI.LowSpaceSubsetSum.CountedSubsets.all_lengthline 27 - theorem
OAI.LowSpaceSubsetSum.CountedSubsets.all_workline 30 - def
OAI.LowSpaceSubsetSum.CountedSubsets.selectline 38 - theorem
OAI.LowSpaceSubsetSum.CountedSubsets.select_valueline 51 - theorem
OAI.LowSpaceSubsetSum.CountedSubsets.select_lengthline 67 - theorem
OAI.LowSpaceSubsetSum.CountedSubsets.select_infeasibleline 71 - theorem
OAI.LowSpaceSubsetSum.CountedSubsets.select_workline 82Source documentation
The count is quadratic in the domain length and linear in the exact number of selected subsets, including the boundary cases
k=0andk=n.theorem select_work (k : ℕ) (xs : List α) (hk : k ≤ xs.length) : (select k xs).2 ≤ 4 * (xs.length + 1) ^ 2 * xs.length.choose k := by …