combinatorial_bound tool v0.1

STEP: 1517 / 公開日: 2026-08-28 / Test: 28/28 PASS / Lean 4: 8 theorem zero sorry / Type: STEP 1486 離散数学 arc candidate 実装 (**離散数学 domain 未着手 first**)

組合せ数 feasibility verdict: C(n,k) / P(n,k) / n! → 実行可能性 判定 (feasible/borderline/infeasible)。 double 精度 overflow で INFINITY。

離散数学 domain 未着手 first tool (8/10 D-FUMT₈ × domain arc の 少なくとも 1 tool 実装 に 前進)。

11 姉妹 verdict tool 目

決定表 (6 case)

#ConditionVerdictReason
1invalid inputs (n<0, k<0, k>n, non-integer)NEITHERinvalid_arguments
2value = 0ZEROzero_combinations
3value ≤ 1e6 (default)TRUEfeasible_enumeration
41e6 < value ≤ 1e12NEITHERborderline_intractable
5value > 1e12INFINITYcombinatorial_explosion
6overflow (Infinity)INFINITYnumerical_overflow

使用例

combinatorialBound({ fn: 'choose', n: 5, k: 2 })
// { verdict: 'TRUE', value: 10, reason: 'feasible_enumeration' }

combinatorialBound({ fn: 'choose', n: 20, k: 10 })
// { verdict: 'TRUE', value: 184756 }

combinatorialBound({ fn: 'factorial', n: 10 })
// { verdict: 'NEITHER', value: 3628800, reason: 'borderline_intractable' }

combinatorialBound({ fn: 'choose', n: 50, k: 25 })
// { verdict: 'INFINITY', value: 126410606437752, reason: 'combinatorial_explosion' }

combinatorialBound({ fn: 'factorial', n: 200 })
// { verdict: 'INFINITY', value: Infinity, reason: 'numerical_overflow' }

Lean 4 (8 theorem zero sorry)

verdict_zero_gives_zero              : value=0 → ZERO
verdict_feasible_gives_true          : value ≤ feasible → TRUE
verdict_borderline_gives_neither     : feasibleborderline (well-formed f≤b) → INFINITY
fact_zero / fact_one / fact_five     : factorial base cases
fact_positive                        : ∀n, n! > 0

Test coverage (28/28 PASS)

Guard 5 + TRUE 4 + NEITHER 2 + INFINITY 2 + Custom threshold 1 + Determinism 1 + edge cases

姉妹 verdict tool 11 揃った

SNR / BH FDR / Welch / 分布 / payoffs / bit strings / V(t) / 「は/が」 / population / S1/S2 / 組合せ

Honest scope

❶ double 精度 (IEEE 754) 制限、 200! 等は overflow で INFINITY 扱い。 BigInt 版 は 別 tool candidate。

❷ Stirling 近似 log10(n!) ≈ n log10(n) は 未 embed、 直接 計算のみ。

❸ 「世界初」 なし = 組合せ論 (Pascal) 既知構造 D-FUMT₈ verdict mapping。

❹ 累計 defer 41 → 40。