# Verification report — EP-963 (Erdős Problem #963: dissociated subsets of sets of n real numbers; small cases)

Verification date: 2026-10-15.

**Verdict.** The note gives a **partial answer** to the question; every statement it makes is proved, and the
scope is as follows.
- **Settled.** g+(4) = 6: every set of seven positive reals contains a dissociated four-element subset, and
  {1,...,6} contains none (Theorem 1.2); hence g(4) = 13. The upper bound is computer-assisted and is proved twice,
  by a closed case-split tree with 151 exact Farkas certificates (Section 3.2) and by an enumeration of linear
  forms over a dissociated triple (Section 3.3). Consequences (Corollary 1.3): f(n) is known for all n <= 27
  (0, 1, 1, 2, 2, 2, 2, then 3 for 8 <= n <= 13 and 4 for 14 <= n <= 27), and f(n) >= ⌊log2 n⌋ for all n <= 31.
- **Elementary reformulations** (Section 2, Proposition 4.1): g(K) = 1 + 2 g+(K); f(n) = max{K : g(K) <= n − 1};
  the question is equivalent to g+(K) <= 2^(K−1) − 1 for all K, and to |P| <= 2^(dim P) − 1 for finite
  P ⊂ Z^r \ {0} without pairs x, −x; f(n) = f+(⌊n/2⌋) for the positive reading. Erdős's greedy bound and
  g+(1), g+(2), g+(3) = 0, 1, 3 are elementary.
- **Proved by exhibition.** g+(5) >= 13 (the set A* = {1,...,10,12,13,15}, posted by BAKKAOUI on the problem's forum,
  3 September 2026) and g+(6) >= 24 (S24 = {1,...,21,24,25,27}); finite exact checks.
- **Tested only, not used in any proof.** Maxima in integer boxes (K = 5: 13 in {1,...,36} only for A*, 2A*; in
  {1,...,60} only for A*, ..., 4A*; K = 4: 6 in {1,...,80}).
- **Open.** The first open case n = 32, equivalent to g+(5) <= 15 (known: 13 <= g+(5) <= 40); the values f(n) for
  n >= 28; the general question.

The note is unrefereed.

## Statement checked
- **Primary source.** P. Erdős, "Extremal problems in number theory", Proc. Sympos. Pure Math. 8 (1965) 181–189,
  doi:10.1090/pspum/008/0174539 (Crossref, checked 2026-10-15). Page 188 was read in the scan of the Erdős
  archive of the Rényi Institute (fetched 2026-10-15; page image rendered and read): for n "given numbers" one
  can always find k >= [log n/log 3] of them with all 0/1-sums different; "Perhaps this can be improved to
  k >= [log n/log 2]"; the example a_i = i shows that this would be nearly best possible. The sums range over all
  ε ∈ {0,1}^k, so the empty sum counts.
- **Problem page.** erdosproblems.com/963 (fetched 2026-10-15): the statement with A ⊂ R, |A| = n, "the sums
  Σ_{b∈S} b are distinct for all S ⊆ B", the question f(n) >= ⌊log2 n⌋; references [Er65], [Va99, 1.22]; the
  greedy remark f(n) >= ⌊log3 n⌋; "This page was last edited 23 January 2026"; 20 comments. [Va99] was not
  available.
- **Status.** The external database linked from the page (github.com/teorth/erdosproblems, data/problems.yaml,
  fetched 2026-10-15): entry "963": status "open", last_update "2025-08-31"; informal status "open". The page
  itself shows no status label in its anonymous HTML; this is not used as evidence.
- **Corpus record.** ulamai/UnsolvedMath v1.6.0, record EP-963: the statement fields agree word for word with
  the problem page; upstream status "open", while the literature note of the record says "partially_solved" (on
  account of the forum's asymptotic argument). Two editorial defects of the record, without effect on the
  mathematics: the background field carries a stray serialized tail (`", "difficulty": "L1" },{`), and its
  literature note dates the community asymptotic argument to "October 2025", while the post is of
  5 December 2025 (the post of 30 October 2025 is a literature check only).

## Readings
| Reading | Answer | Where |
|---|---|---|
| Sets of n real numbers, 0 and negative numbers allowed, empty sum counted (the page and the source) | f(n) for n <= 27; f(n) >= ⌊log2 n⌋ for n <= 31; open from n = 32 | Corollary 1.3 |
| Sets of positive reals or positive integers (used on the forum) | f(n) = f+(⌊n/2⌋); the bound f+(m) >= ⌊log2 m⌋ for m <= 31 follows from the greedy bound alone; f+ = 1, 2, 2, 3, 3, 3 for m <= 6 and 4 for 7 <= m <= 13 (the latter uses Theorem 1.2); f(13) = 3 but f+(13) = 4 | Remark 2.6(b) |
| Integers instead of reals | the same values of f, g, g+ | Remark 2.6(a) |
| Empty sum not counted | {x, −x} would be dissociated; excluded by the source (ε ranges over all of {0,1}^k) and by the page (all S ⊆ B) | Section 1.1 |
| Multisets ("n given numbers" with repetitions) | degenerate; the page speaks of sets | Section 1.1 |

## Results in the paper
- **Proposition 1.1 / Lemmas 2.1–2.3.** Relations and dissociated sets; g(K) = 1 + 2 g+(K); f(n) = max{K : g(K) <= n − 1};
  five equivalent forms of the question.
- **Lemma 2.4** (Erdős's greedy bound), **Lemma 2.5** (K <= 3), **Remark 2.6** (integers; f(n) = f+(⌊n/2⌋)).
- **Theorem 1.2** (g+(4) = 6). Lower bound and non-uniqueness: Proposition 3.1 ({1,...,6}; {1,2,3,a,a+1,a+3} for
  every real a > 3). First proof: Lemma 3.2 (order-feasible patterns, summation by parts), Lemma 3.3 (Farkas
  certificate, trivial direction), Definition 3.4 and Proposition 3.5 (closed trees prove g+(K) <= N − 1), the tree
  for N = 7 in Table 2 (30 nodes, 29 continued and 151 refuted cases) with a worked certificate. Second proof:
  Lemma 3.6 (dissociated triple, ten linear forms, conditions (C1)–(C3)), Proposition 3.7 (completeness of the
  enumeration); N = 7: 210 choices of forms, no admissible subspace.
- **Corollary 1.3** (values of f; first open case). **Proposition 4.1** (the integer-vector form) with Remark 4.2.
- **Proposition 5.1** (A*, S24), the interval comparison u_1..u_6 = 1, 2, 4, 7, 13, 24, **Remark 5.2** (boxes,
  tested), and the encoding for K = 5 with its side conditions (not carried out).

## Computations (programs and outputs in reproducibility/)
- **`check_note.py`** (written for the note; standard library; about 3 s; TOTAL: ALL CHECKS PASSED). (i) The tree
  `tree_K4_N7.jsonl`: patterns recomputed, every case listed once, explicit rational multipliers for all 151
  certificates, parent/child lists, reachability; the three other closed trees (N = 7 second version, N = 8 both
  versions); the N = 6 tree as a control (EXISTENCE, among the points a multiple of (1,...,6)); eleven corrupted
  trees, all rejected. (ii) Proposition 3.1 (the fifteen relations of (b) as identities in a; a = 4..60 directly),
  {0, ±1, ..., ±6}, maximal dissociated subsets {1,2,4} and {3,5,6,7} of {1,...,7}. (iii) Proposition 5.1
  (1287 and 134,596 subsets), {0} ∪ A* ∪ (−A*) (27 numbers), the intervals. (iv) f(n) for n <= 31; the first n not
  covered by the known bounds is 32. (v) The enumeration of Section 3.3: N = 5, 6, 7, 8 give 588, 1692, 0, 0
  admissible subspaces; all 2280 configurations for N = 5, 6 realized by integer sets and checked directly.
- **First version** (`original/`): the search program in two versions (numpy/scipy for guidance only, exact
  certificates), the checker `check_tree.py` (rank test) with a corruption test (4 corruptions), explicit checks,
  a box search; the unfinished K = 5 runs (N = 14 and N = 16, 1750 s each, no conclusion).
- **Verification run A** (`verification_run_A/`): its checker with explicit multipliers (four closed trees; five
  corruptions rejected by it and by `check_tree.py`); the enumeration of Section 3.3 and its comparison with all
  134,158 five-element and 38,006 six-element subsets of {1,...,80} without a dissociated 4-subset (all explained);
  explicit sets; a second box search (K = 5 up to M = 60; K = 4 at M = 80).
- **Verification run B** (`verification_run_B/`): a related reduction (dissociated (K−1)-subset, case analysis on
  the linear equations of d with exact subspace tests): K = 3, N = 4 closed; K = 4, N = 7 closed (210 choices,
  237,323 nodes, depth <= 3, 16 s) and N = 8 closed; its own checker and six corruption tests.
- **Re-runs.** On 2026-10-15 `rerun_quick.sh` was run on a copy of the folder (`RERUN_LOG.txt`): `check_note.py`
  output identical up to timing fields; the five trees of the first version regenerated byte for byte by the two
  search programs; `check_tree.py` verdicts CLOSED (N = 7, 8) and EXISTENCE (N = 6); the eleven corrupted trees
  of `check_note.py` rejected by `check_tree.py` and by run A's checker; recorded outputs of the corruption test,
  the explicit checks, run A's checker, enumeration, explicit sets, cross-validation (M = 20, 26) and box searches
  (K = 4, M = 80; K = 5, M = 36) reproduced; run B's K = 4, N = 7 log regenerated with the SHA-256 recorded by
  run B, verdict CLOSED, six corruptions rejected. The third run repeated this re-run from the archive with the same
  result.
- **Third verification run** (`independent_run_2/`, programs written from the text of the note; standard library
  and one C program; about two minutes in all with `r2_run_all.sh`): its own exact tree checker, the second proof by
  an exhaustive enumeration of candidate subspaces, a comparison with part (v) of `check_note.py`, 38 checks of
  explicit sets and tables, and a box search in C; results in the section "Third run" below.

## Independent verification runs
The results were first obtained with the programs in `original/`. Three independent verification runs, all
AI-assisted, followed on 2026-10-15; each wrote its own programs. Run A examined the statement, all proofs and
the sources; run B recomputed the main theorem by its own method, re-ran the programs of the first version, and
searched the literature. Runs A and B examined the first written version of the results; the third run examined
the final text of the note (see "Third run" below).

| Item | Run A | Run B |
|---|---|---|
| Statement and conventions against the page, the database, the record and [Er65] p. 188 | CONFIRMED (two wording slips in the first version) | CONFIRMED |
| Lemmas 2.1(a)–(c), 2.2–2.5, Proposition 4.1, Remark 2.6(a) | CONFIRMED (re-derived) | CONFIRMED (re-derived) |
| Lemmas 3.2–3.3 and the soundness of the case-split tree | CONFIRMED | CONFIRMED |
| The tree for N = 7 (151 certificates) | CONFIRMED by its own checker with explicit multipliers and by the first checker; mutation tests | CONFIRMED by re-running the first checker; trees regenerated byte for byte |
| g+(4) <= 6 by an independent method | found and ran the second proof (Section 3.3): 0 configurations for N = 7, 8 | CONFIRMED by a related reduction with its own checker |
| Consequences for f(n), n <= 31 | CONFIRMED | CONFIRMED |
| g+(5) >= 13, g+(6) >= 24 | PROVED by exhibition (relabel) | CONFIRMED (explicit checks) |
| Box statements | TESTED (reproduced; extended to M = 48, 60) | TESTED (re-ran the first program, M = 36) |
| Status | open per the database; not stale | not stale |
| Novelty | nothing found on f(n) or the floor bound | no earlier statement of the exact values found |

No run found a mathematical error.

**Corrections required by runs A and B**, all applied in the note (details in the audit file of the writing stage):
1. (A) The forum bound f(13) <= 4 is an upper bound; what A* gives in the reading of the note is g+(5) >= 13, and
   there f(13) = 3 is elementary: Section 1.3, Remark 2.6(b).
2. (A) g+(5) >= 13 and g+(6) >= 24 are proved by exhibition; only box statements are tested: Proposition 5.1,
   Remark 5.2.
3. (A) The reading with positive integers: Section 1.1 (one sentence) and Remark 2.6(b).
4. (A) Status from the database entry (open, last update 2025-08-31), not from the absence of a badge: Section 1.3.
5. (A) The forum argument is dated 5 December 2025: Section 1.3, "Scope and priority".
6. (A) Negative literature statements are given as search results with the sources named: "Scope and priority".
7. (A) The incorrect ratio "u_K − 1 ≈ 0.47·2^(K−1)" was dropped; only u_1..u_6 are given (Section 5).
8. (A, B) The program version and command that produce the 30-node tree, and its printed line (lps=199): Section 6
   and `reproducibility/README.md`.
9. (A) [Er65]: "given numbers"; page range from Crossref: Section 1.1, bibliography.
10. (A) The stale hash file of the first version is not part of the package; new checksums in `SHA256SUMS.txt`.
11. (A) Unrecorded exploratory searches are not used or cited; the M = 60 box result cites run A's recorded run.
12. (A) Wording: F_2^r in Remark 4.2(b); the conditions of the K = 5 encoding are stated (Section 5).
13. (B) The extremal six-element sets are not unique: Proposition 3.1(b) ({1,2,3,a,a+1,a+3}, a > 3; a = 4 gives
    {1,2,3,4,5,7}).
14. (B) Bohman 1996 (PAMS 124) and 1998 (EJC 5): bibliography.
15. (B) The side conditions of the encoding ((C1) all sign classes nonzero at d; (C2) distinct absolute values):
    Lemma 3.6 and Section 5.

**Changes made when the note was written, after runs A and B.**
- The second proof of run A was written out as Section 3.3 (Lemma 3.6, Proposition 3.7) and implemented again
  in `check_note.py` part (v), with the same counts as run A's program.
- `check_note.py` was written: a third exact checker of the tree (explicit multipliers, eleven corruptions), the
  explicit sets, the values of f, and the enumeration. The eleven corrupted trees are also rejected by the two
  earlier checkers.
- New statements with proofs: Lemma 2.1(d); the family of Proposition 3.1(b); f(n) = f+(⌊n/2⌋) (Remark 2.6(b));
  f(n) <= 5 for n <= 49 (Proposition 5.1(b)); the remark that dissociated sets do not form a matroid ({1,2,4} and
  {3,5,6,7} maximal in {1,...,7}; checked in part (ii)).
- These additions were examined by the third run (next section), which re-derived their proofs and checked them
  with its own programs.

### Third run: on the final text (`reproducibility/independent_run_2/`)
The third run, also AI-assisted, examined the final text of the note and the package line by line, as if nothing
had been checked, starting with the additions made after runs A and B. It read the sources again ([Er65] p. 188 in a
high-resolution rendering of the scan; the problem page; the whole forum thread; the database entry; the corpus
record; Section 1 of [Boh98] with its Lemma 1.1; the Crossref records of all DOIs; the arXiv records of the cited
preprints), re-derived every proof, and wrote its own programs before reading the code of `check_note.py`:
- an exact tree checker: `tree_K4_N7.jsonl` CLOSED (30 nodes, 29 continued and 151 refuted cases, explicit
  multipliers for every certificate, denominators <= 13); all 30 rows of Table 2 agree with the file; the worked
  example of Section 3.2 is exact; the other three trees CLOSED; the N = 6 tree has 10 genuine solution points
  (among them (1,...,6) after scaling); twelve corruptions of its own rejected;
- the second proof by an exhaustive enumeration of all candidate subspaces, without the branching of
  Proposition 3.7: no admissible subspace for N = 7 (210 choices of forms) and N = 8 (252); for N = 5, 6 all 4104
  and 9268 admissible subspaces realized by integer vectors d and checked directly; all 14,979 five-element and
  4,203 six-element subsets of {1,...,40} without a dissociated 4-subset accounted for; a choice-by-choice
  comparison with part (v) of `check_note.py` agrees with the proof of Proposition 3.7 (0 violations) and explains
  the counts 588 and 1692 of the note, which are the reports of the procedure;
- 38 exact checks of the explicit sets, of f(n) and f+(m), of Table 1 and of the floor identities (all pass), and a
  box search in C (K = 4, M = 80: 134,158, 38,006 and 0 subsets of sizes 5, 6, 7 without a dissociated 4-subset;
  K = 5, M = 36: largest size 13, only A* and 2A*, with the same counts by size as run A's program);
- the package re-run from an extracted copy of the archive: `check_note.py` identical up to timing fields;
  `rerun_quick.sh`: 16 IDENTICAL, 0 DIFFERENT; `out_vA_forms_crossval2.txt`, `box_K5_M48.txt`, `box_K5_M60.txt`
  and `original/outputs/intbox_K5_M36.txt` reproduced up to timing fields (the runs stopped by a time limit were not
  repeated);
- the literature search repeated (next section).
It found no mathematical error, no gap, and no earlier publication of the result.

**Corrections required by the third run**, all applied in the note and the package:
16. BAKKAOUI's bound f(13) <= 4 is quoted as in the post, for the problem's f (his window searches are over
    positive integers); in the positive reading it is f+(13) <= 4, equivalent to g+(5) >= 13: Section 1.3,
    Remark 2.6(b), "Scope and priority".
17. The corpus record: upstream status "open", while its literature note says partially solved: Section 1.1.
18. Abstract: "every terminal case is closed by an exact Farkas certificate", "independent exact checkers".
19. Section 6: the proof of Proposition 5.1 is a computation of the package (also in `reproducibility/README.md`).
20. Verification paragraph: what the first run examined (the lemmas of the first version; the sets {1,...,6}, A*
    and S24), the additions made after runs A and B, and the record of this run.
21. "Scope and priority": the searches of this run and what it read.
22. Credit: passing to the differences of consecutive elements (Lemmas 3.2–3.3) is also the starting point of
    Bohman's analysis of sets with distinct subset sums [Boh98, Lemma 1.1] (Section 3.2).
23. Section 5, the case K = 5: the set F consists of the four unit vectors and some of the 36 forms.
24. This report, the package README (the folder `independent_run_2/`) and `SHA256SUMS.txt`.

## Relation to the literature, novelty and scope
- **Searches (2026-10-15).** The problem page and its forum thread (read in full), the database entry; arXiv API
  queries for dissociated sets and subsets, distinct subset sums and additive dimension, and an arXiv metadata
  check of the cited preprints; zbMATH Open; OpenAlex; Crossref (bibliographic queries and DOI checks); two web
  searches. Semantic Scholar answered with HTTP 429 or not at all and was not used. The third run repeated the
  search on the same day: arXiv API (abstracts with "dissociated" in math.CO and math.NT sorted by date; "dissociated"
  with "Erdos"; "distinct subset sums" sorted by date), Crossref, OpenAlex (a search, and the 77 works citing [Er65]
  listed by date), zbMATH Open, one web search (three in all), and the full texts of two 2026 preprints that could
  have touched the problem: FrontierMath Erdős (arXiv:2609.25050), whose list of 68 open Erdős problems does not
  contain #963, and Bolzano (arXiv:2604.16989), which concerns dissociation sets of graphs. The newest related items
  (sets with few subset sums, arXiv:2605.05498; the distinct subset sums problem, arXiv:2609.27941, 2510.06032)
  do not treat f(n). Run B also checked Bajnok's
  "Additive Combinatorics: A Menu of Research Problems" (arXiv:1705.07444): its dissociated-set problems concern
  the largest dissociated subsets of finite abelian groups, not f(n).
- **Found.** No earlier statement of g+(4) = 6 (equivalently g(4) = 13), of the values f(n) for 14 <= n <= 27, or of
  f(n) >= ⌊log2 n⌋ for n <= 31. Related, not settling: KoishiChan's unrefereed asymptotic argument
  (5 December 2025), BAKKAOUI's A*, his bound f(13) <= 4 and window searches (3 September 2026), Lev–Yuster (2011), Schoen–Shkredov
  (2016), Candela–Helfgott (2015), Shkredov (2024), Dutta (arXiv:2601.07068), Bohman (1996, 1998).
- **What was read.** [Er65] p. 188 (scan); the problem page and the whole forum thread; Dutta's preprint in full
  during the preparation of the first version; Section 1 of [Boh98] with Lemma 1.1 (third run); of the other cited
  papers the abstracts (arXiv and journal metadata checked; for [Boh96] the abstract from Crossref, the publisher's
  file not being accessible). The 1999 problem collection [Va99] was not available.
- **Caveats.** A search that finds nothing is not a proof of novelty; the result is elementary in nature and
  could appear unindexed (for example in problem collections). No priority is claimed. The forum's asymptotic
  argument was not assessed.
- **Scope.** Nothing is claimed for n >= 32 beyond f(n) >= 4, the greedy bound and f(n) <= 5 for n <= 49.

## Public release and license
This paper, its source files, and this verification report are licensed under the Creative Commons Attribution
4.0 International License (CC BY 4.0): https://creativecommons.org/licenses/by/4.0/
