Minimum modulus for the unique multiset-sum problem #
Formalization of the paper Minimum modulus for the unique multiset-sum
problem, with an application to computing the permanent (J. A. R.
Fonollosa, 2026) for the super-increasing set A = {2^i − 1 : 0 ≤ i < n}.
Everything is stated in k-space (the paper's k = c + 1 variables), over ℕ:
a candidate multiset is k : ℕ → ℕ with digit sum ∑_{i<n} k i = n, and
validity mod N says the only such k with ∑ k_i·a_i ≡ ∑ a_i [MOD N] is
all-ones. The paper's signed multiples V = ±jN enter only through the
congruence M ≡ 2^n − 1 [MOD N] on M = ∑ k_i 2^i, so no integers appear.
Contents:
- definitions:
a,dsum,val,Supp,Valid - representation constructors (existence half of the paper's master
achievability criterion, Prop. 1):
ones_rep,ones_erase_rep,exists_rep_le,exists_rep_lt,exists_rep_compl, and contiguitydsum_succ_of_lt/exists_dsum_eq theoremB(paper §6, optimality / lower bound) — completegminand the greedy minimality boundgmin_le_dsum(paper Lemma 3, downward half), the step lemmagmin_step(paper Lemma 4) and thej-induction boundslack(popcount-free, no range restriction)ones_unique(paper Lemma 2)theoremA(paper §5, validity / upper bound) — completenmin_eq— the main theoremNmin(n) = 2^n − 2^⌊log₂ n⌋— complete, no axioms beyond propext / Classical.choice / Quot.sound
Value of k on [0, n) with power-of-two coins (paper: M = Σ k_i 2^i).
Equations
- MinModulus.val n k = ∑ i ∈ Finset.range n, k i * 2 ^ i
Instances For
Validity mod N (paper §2, problem statement): the all-ones vector is the only size-n
multiset drawn from A whose sum is ≡ Σ a_i (mod N).
Equations
- MinModulus.Valid n N = ∀ (k : ℕ → ℕ), MinModulus.dsum n k = n → ∑ i ∈ Finset.range n, k i * MinModulus.a i ≡ ∑ i ∈ Finset.range n, MinModulus.a i [MOD N] → ∀ i < n, k i = 1
Instances For
Basic identities #
Padding and top-coin composition #
Explicit representations (bases of the four witness families, paper §6) #
Contiguity (paper Lemma 3, upward direction) #
Small arithmetic helpers #
Theorem B: optimality (paper §6) #
Theorem B (lower bound): every modulus 2 ≤ N < 2^n − 2^⌊log₂ n⌋ is
invalid for the super-increasing set. The four witness families of the paper:
(i) N < 2^{n-1} — M = 2^n − 1 + N; (ii) N = 2^{n-1} — M = 2^{n-1} − 1
(a negative multiple, V = −N); (iii) gap s := 2^n − N not a power of two —
M = 2^n − 1 + N; (iv) gap s = 2^e, ⌊log₂ n⌋ < e ≤ n−2 — M = 2^e − 1
(again V = −N), where 2^e − 1 ≥ n is exactly e > ⌊log₂ n⌋.
The greedy digit-sum lower bound (paper Lemma 3, minimality half) #
gmin w M is the digit sum of the greedy representation of M with coins
2^0, …, 2^w: the binary digits of M below bit w plus the whole quotient
⌊M/2^w⌋ on the top coin. Everything is proved by induction on w, peeling
one bit per step, so only literal /2 and %2 appear — omega-friendly.
The step lemma gmin_step (paper Lemma 4) replaces the paper's popcount
identities: slack iterates it over j, with no range restriction.
Greedy digit sum with coins 2^0..2^w (w+1 coin types).
Equations
- MinModulus.gmin 0 x✝ = x✝
- MinModulus.gmin w.succ x✝ = x✝ % 2 + MinModulus.gmin w (x✝ / 2)
Instances For
Step lemma (paper §5, Lemma 4): adding 2^{w+1} − 2^t (t ≤ w;
subtraction encoded as M' + 2^t = M + 2^{w+1}) raises the greedy digit sum
by at least 1. Induction on w, peeling one bit: for t ≥ 1 both sides
keep their parity and the shifted instance is (w−1, t−1); for t = 0 the
parity flips, and the odd-M branch pays two top coins via gmin_add_pow.
Slack bound (paper §5): by induction on j from the step lemma, the
positive-multiple target 2^{w+1} − 1 + j·N at a power-of-two gap
(N + 2^t = 2^{w+1}, t ≤ w) has greedy digit sum at least w + 1 + j —
the paper's s_min(M_j) ≥ n + j, for every j.
Greedy minimality (paper Lemma 3, downward half): the digit sum of any
representation is at least the greedy digit sum of its value. Induction on
the width: split the bottom coin k 0 = M % 2 + 2t; the 2t surplus carries
up into the shifted representation, and gmin_add_le absorbs it.
Lemma 2 (paper §3): the all-ones vector is the only representation of
2^n − 1 with digit sum n. Descent on the bottom coin: parity forces
k 0 = 1 + 2t, and the greedy bound on the shifted representation forces
t = 0; recurse.
Theorem A and the main theorem #
Theorem A (upper bound, paper §5): the super-increasing set is valid at
N = 2^n − 2^⌊log₂ n⌋. Pass to M = val n k ≡ 2^n − 1 [MOD N] and split:
M < 2^n − 1 falls below the floor (2^m ≤ n — the only place ⌊log₂⌋
enters); M = 2^n − 1 is ones_unique; and M = 2^n − 1 + jN has greedy
digit sum at least n + j > n by slack — uniformly in j ≥ 1 and n ≥ 2,
with no range restriction and no small-n cases.