OAI/Combinatorics/LowSpaceSubsetSum/Counting/CountedBinomial.lean
16 declarations, 0 contain sorry, 0 declared as axioms
Constant-state multiplicative binomial computation
Each iteration uses one multiplication and one exact division. The three state fields and the division numerator have linearly bounded bit lengths.
- structure
OAI.LowSpaceSubsetSum.CountedBinomial.Stateline 14 - def
OAI.LowSpaceSubsetSum.CountedBinomial.initialline 19 - def
OAI.LowSpaceSubsetSum.CountedBinomial.stepline 21 - def
OAI.LowSpaceSubsetSum.CountedBinomial.runAccline 24 - def
OAI.LowSpaceSubsetSum.CountedBinomial.runline 28 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.recurrenceline 31 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.step_valueline 36 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.runAcc_indexline 41 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.runAcc_stepsline 48 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.runAcc_valueline 55 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.run_valueline 63 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.run_stepsline 70 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.step_dividesline 78Source documentation
The division numerator is exactly divisible by the current index.
theorem step_divides (n : ℕ) (s : State) (h : s.value = n.choose s.index) : s.index + 1 ∣ s.value * (n - s.index) := by … - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.value_boundline 83 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.numerator_boundline 88 - theorem
OAI.LowSpaceSubsetSum.CountedBinomial.prefix_boundsline 98Source documentation
This bounds every intermediate prefix state of the multiplicative loop, not only its final returned value.
theorem prefix_bounds (n k j : ℕ) (hj : j ≤ k) (hk : k ≤ n) : let s := runAcc n j initial …Mentions: OAI.LowSpaceSubsetSum.CountedBinomial.runAcc, OAI.LowSpaceSubsetSum.CountedBinomial.initial