erdos-problems 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,18 +2,35 @@
2
2
 
3
3
  CLI atlas and staged research harness for Paul Erdos problems.
4
4
 
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g erdos-problems
9
+ ```
10
+
11
+ Official package:
12
+ - `erdos-problems`
13
+
14
+ Official binary:
15
+ - `erdos`
16
+
5
17
  ## Current shape
6
18
 
7
19
  - atlas layer for seeded Erdos problems
8
20
  - sunflower cluster as the first deep harness pack
9
- - initial seeded problems: `20`, `536`, `856`, `857`
10
21
  - lightweight `.erdos/` workspace state for active-problem selection
22
+ - seeded atlas now includes open and solved problems beyond sunflower
23
+
24
+ Seeded problems:
25
+ - `18`, `20`, `89`, `536`, `542`, `856`, `857`, `1008`
11
26
 
12
27
  ## CLI
13
28
 
14
29
  ```bash
15
30
  erdos problem list
16
31
  erdos problem list --cluster sunflower
32
+ erdos problem list --repo-status historical
33
+ erdos problem list --harness-depth deep
17
34
  erdos problem use 857
18
35
  erdos problem show
19
36
  erdos cluster list
@@ -22,6 +39,11 @@ erdos workspace show
22
39
  erdos dossier show
23
40
  ```
24
41
 
42
+ ## Notes
43
+
44
+ - `erdos-problems` is the canonical npm package name.
45
+ - The compact unscoped alias `erdosproblems` is not publishable because npm rejects it as too similar to `erdos-problems`.
46
+
25
47
  ## Docs
26
48
 
27
49
  - `docs/ERDOS_PROBLEMS_REPO_SPEC.md`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erdos-problems",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "CLI atlas and staged research harness for Paul Erdos problems.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,4 @@
1
+ # Problem 1008 Evidence
2
+
3
+ - Historical solved entry.
4
+ - Site records the problem as `PROVED (LEAN)`.
@@ -0,0 +1,5 @@
1
+ # Problem 1008 Formalization
2
+
3
+ - Site badge: `PROVED (LEAN)`
4
+ - Site also says: `Formalised statement? No`
5
+ - Local interpretation: the solved status has Lean-verified proof metadata on the site, but we have not yet imported the supporting formal artifacts here.
@@ -0,0 +1,5 @@
1
+ # Problem 1008 References
2
+
3
+ - Source page: <https://www.erdosproblems.com/1008>
4
+ - Site badge: `PROVED (LEAN)`
5
+ - Source credits Conlon, Fox, and Sudakov for the first affirmative proof.
@@ -0,0 +1,9 @@
1
+ # Problem 1008 Statement
2
+
3
+ Source: <https://www.erdosproblems.com/1008>
4
+
5
+ Normalized focus:
6
+ - C4-free subgraphs inside dense graphs
7
+
8
+ Core question:
9
+ - Does every graph with `m` edges contain a C4-free subgraph with at least a constant multiple of `m^(2/3)` edges?
@@ -0,0 +1,16 @@
1
+ problem_id: "1008"
2
+ display_name: "Erdos Problem #1008"
3
+ title: "C4-Free Subgraph Density Problem"
4
+ source:
5
+ site: "erdosproblems.com"
6
+ url: "https://www.erdosproblems.com/1008"
7
+ external_id: "1008"
8
+ status:
9
+ site_status: "solved"
10
+ site_badge: "PROVED (LEAN)"
11
+ repo_status: "historical"
12
+ cluster: "graph-theory"
13
+ related_problems: []
14
+ family_tags:
15
+ - "graph-theory"
16
+ - "cycles"
@@ -0,0 +1,4 @@
1
+ # Problem 18 Evidence
2
+
3
+ - Atlas-only entry for now.
4
+ - No local theorem harness or computational evidence has been attached yet.
@@ -0,0 +1,5 @@
1
+ # Problem 18 Formalization
2
+
3
+ - Site reports: `Formalised statement? Yes`
4
+ - Local repo status: dossier only
5
+ - Next step: link the referenced formal statement source into the dossier.
@@ -0,0 +1,6 @@
1
+ # Problem 18 References
2
+
3
+ - Source page: <https://www.erdosproblems.com/18>
4
+ - Site badge: `OPEN`
5
+ - Tags on source: `number theory`, `divisors`, `factorials`
6
+ - Site notes a $250 reward and records the page as formally stated.
@@ -0,0 +1,12 @@
1
+ # Problem 18 Statement
2
+
3
+ Source: <https://www.erdosproblems.com/18>
4
+
5
+ Normalized focus:
6
+ - practical numbers
7
+ - divisor-sum efficiency parameter `h(m)`
8
+ - factorial specialization `h(n!)`
9
+
10
+ Core question:
11
+ - Are there infinitely many practical `m` with `h(m) < (log log m)^{O(1)}`?
12
+ - Is `h(n!) < n^{o(1)}` or even `h(n!) < (log n)^{O(1)}`?
@@ -0,0 +1,17 @@
1
+ problem_id: "18"
2
+ display_name: "Erdos Problem #18"
3
+ title: "Practical Numbers Divisor-Sum Efficiency"
4
+ source:
5
+ site: "erdosproblems.com"
6
+ url: "https://www.erdosproblems.com/18"
7
+ external_id: "18"
8
+ status:
9
+ site_status: "open"
10
+ site_badge: "OPEN"
11
+ repo_status: "cataloged"
12
+ cluster: "number-theory"
13
+ related_problems: []
14
+ family_tags:
15
+ - "number-theory"
16
+ - "divisors"
17
+ - "factorials"
@@ -0,0 +1,6 @@
1
+ # Problem 542 Evidence
2
+
3
+ - Historical solved entry.
4
+ - Source reports:
5
+ - first question resolved affirmatively
6
+ - second question resolved negatively
@@ -0,0 +1,5 @@
1
+ # Problem 542 Formalization
2
+
3
+ - Site reports: `Formalised statement? No`
4
+ - Local repo status: historical dossier only
5
+ - Next step: capture a formalizable modern restatement if this cluster becomes active.
@@ -0,0 +1,5 @@
1
+ # Problem 542 References
2
+
3
+ - Source page: <https://www.erdosproblems.com/542>
4
+ - Site badge: `SOLVED`
5
+ - Source records the resolution by Schinzel and Szekeres and later sharpening by Chen.
@@ -0,0 +1,11 @@
1
+ # Problem 542 Statement
2
+
3
+ Source: <https://www.erdosproblems.com/542>
4
+
5
+ Normalized focus:
6
+ - subsets of `{1, ..., n}` with all pairwise least common multiples above `n`
7
+ - reciprocal-sum control and divisor-avoidance density
8
+
9
+ Core historical questions:
10
+ - Must `sum_{a in A} 1/a <= 31/30`?
11
+ - Must there be linearly many `m <= n` dividing no element of `A`?
@@ -0,0 +1,17 @@
1
+ problem_id: "542"
2
+ display_name: "Erdos Problem #542"
3
+ title: "LCM-Free Sets Reciprocal Sum Bound"
4
+ source:
5
+ site: "erdosproblems.com"
6
+ url: "https://www.erdosproblems.com/542"
7
+ external_id: "542"
8
+ status:
9
+ site_status: "solved"
10
+ site_badge: "SOLVED"
11
+ repo_status: "historical"
12
+ cluster: "number-theory"
13
+ related_problems:
14
+ - "784"
15
+ family_tags:
16
+ - "number-theory"
17
+ - "least-common-multiple"
@@ -0,0 +1,4 @@
1
+ # Problem 89 Evidence
2
+
3
+ - Atlas-only entry for now.
4
+ - No local computational or formalization artifacts are attached yet.
@@ -0,0 +1,5 @@
1
+ # Problem 89 Formalization
2
+
3
+ - Site reports: `Formalised statement? Yes`
4
+ - Local repo status: dossier only
5
+ - Next step: capture the formal statement link and relevant lower-bound references.
@@ -0,0 +1,6 @@
1
+ # Problem 89 References
2
+
3
+ - Source page: <https://www.erdosproblems.com/89>
4
+ - Site badge: `OPEN`
5
+ - Tags on source: `geometry`, `distances`
6
+ - Source notes the Guth-Katz bound `>> n / log n` as the current near-solution benchmark.
@@ -0,0 +1,10 @@
1
+ # Problem 89 Statement
2
+
3
+ Source: <https://www.erdosproblems.com/89>
4
+
5
+ Normalized focus:
6
+ - distinct distances in the plane
7
+ - near-optimal lower bounds
8
+
9
+ Core question:
10
+ - Does every set of `n` distinct points in `R^2` determine at least a constant multiple of `n / sqrt(log n)` distinct distances?
@@ -0,0 +1,16 @@
1
+ problem_id: "89"
2
+ display_name: "Erdos Problem #89"
3
+ title: "Distinct Distances Lower Bound"
4
+ source:
5
+ site: "erdosproblems.com"
6
+ url: "https://www.erdosproblems.com/89"
7
+ external_id: "89"
8
+ status:
9
+ site_status: "open"
10
+ site_badge: "OPEN"
11
+ repo_status: "cataloged"
12
+ cluster: "geometry"
13
+ related_problems: []
14
+ family_tags:
15
+ - "geometry"
16
+ - "distances"
@@ -1,9 +1,26 @@
1
1
  export const catalog = [
2
+ {
3
+ problemId: '18',
4
+ displayName: 'Erdos Problem #18',
5
+ title: 'Practical Numbers Divisor-Sum Efficiency',
6
+ siteStatus: 'open',
7
+ siteBadge: 'OPEN',
8
+ repoStatus: 'cataloged',
9
+ cluster: 'number-theory',
10
+ familyTags: ['number-theory', 'divisors', 'factorials'],
11
+ relatedProblems: [],
12
+ sourceUrl: 'https://www.erdosproblems.com/18',
13
+ shortStatement:
14
+ 'Study whether infinitely many practical numbers admit polylogarithmic divisor-sum efficiency, and whether h(n!) is polylogarithmic.',
15
+ harnessDepth: 'dossier',
16
+ formalizationStatus: 'statement-formalized',
17
+ },
2
18
  {
3
19
  problemId: '20',
4
20
  displayName: 'Erdos Problem #20',
5
21
  title: 'Strong Sunflower Problem',
6
22
  siteStatus: 'open',
23
+ siteBadge: 'OPEN',
7
24
  repoStatus: 'active',
8
25
  cluster: 'sunflower',
9
26
  familyTags: ['sunflower', 'uniform-families'],
@@ -14,11 +31,28 @@ export const catalog = [
14
31
  harnessDepth: 'deep',
15
32
  formalizationStatus: 'active',
16
33
  },
34
+ {
35
+ problemId: '89',
36
+ displayName: 'Erdos Problem #89',
37
+ title: 'Distinct Distances Lower Bound',
38
+ siteStatus: 'open',
39
+ siteBadge: 'OPEN',
40
+ repoStatus: 'cataloged',
41
+ cluster: 'geometry',
42
+ familyTags: ['geometry', 'distances'],
43
+ relatedProblems: [],
44
+ sourceUrl: 'https://www.erdosproblems.com/89',
45
+ shortStatement:
46
+ 'Ask whether every n-point set in the plane determines at least a constant multiple of n/sqrt(log n) distinct distances.',
47
+ harnessDepth: 'dossier',
48
+ formalizationStatus: 'statement-formalized',
49
+ },
17
50
  {
18
51
  problemId: '536',
19
52
  displayName: 'Erdos Problem #536',
20
53
  title: 'LCM Sunflower Analogue',
21
54
  siteStatus: 'open',
55
+ siteBadge: 'OPEN',
22
56
  repoStatus: 'cataloged',
23
57
  cluster: 'sunflower',
24
58
  familyTags: ['sunflower-analogue', 'number-theory'],
@@ -29,11 +63,28 @@ export const catalog = [
29
63
  harnessDepth: 'dossier',
30
64
  formalizationStatus: 'planned',
31
65
  },
66
+ {
67
+ problemId: '542',
68
+ displayName: 'Erdos Problem #542',
69
+ title: 'LCM-Free Sets Reciprocal Sum Bound',
70
+ siteStatus: 'solved',
71
+ siteBadge: 'SOLVED',
72
+ repoStatus: 'historical',
73
+ cluster: 'number-theory',
74
+ familyTags: ['number-theory', 'least-common-multiple'],
75
+ relatedProblems: ['784'],
76
+ sourceUrl: 'https://www.erdosproblems.com/542',
77
+ shortStatement:
78
+ 'Control reciprocal sums of sets with all pairwise least common multiples above n, a problem resolved by Schinzel and Szekeres.',
79
+ harnessDepth: 'dossier',
80
+ formalizationStatus: 'unstarted',
81
+ },
32
82
  {
33
83
  problemId: '856',
34
84
  displayName: 'Erdos Problem #856',
35
85
  title: 'Harmonic LCM Sunflower Analogue',
36
86
  siteStatus: 'open',
87
+ siteBadge: 'OPEN',
37
88
  repoStatus: 'cataloged',
38
89
  cluster: 'sunflower',
39
90
  familyTags: ['sunflower-analogue', 'number-theory'],
@@ -49,6 +100,7 @@ export const catalog = [
49
100
  displayName: 'Erdos Problem #857',
50
101
  title: 'Sunflower Conjecture',
51
102
  siteStatus: 'open',
103
+ siteBadge: 'OPEN',
52
104
  repoStatus: 'active',
53
105
  cluster: 'sunflower',
54
106
  familyTags: ['sunflower', 'extremal-set-theory'],
@@ -65,12 +117,33 @@ export const catalog = [
65
117
  problemSolved: false,
66
118
  },
67
119
  },
120
+ {
121
+ problemId: '1008',
122
+ displayName: 'Erdos Problem #1008',
123
+ title: 'C4-Free Subgraph Density Problem',
124
+ siteStatus: 'solved',
125
+ siteBadge: 'PROVED (LEAN)',
126
+ repoStatus: 'historical',
127
+ cluster: 'graph-theory',
128
+ familyTags: ['graph-theory', 'cycles'],
129
+ relatedProblems: [],
130
+ sourceUrl: 'https://www.erdosproblems.com/1008',
131
+ shortStatement:
132
+ 'Determine whether every graph with m edges contains a C4-free subgraph with a constant multiple of m^(2/3) edges.',
133
+ harnessDepth: 'dossier',
134
+ formalizationStatus: 'site-proved-lean',
135
+ },
68
136
  ];
69
137
 
70
138
  export function listProblems(filters = {}) {
71
139
  const cluster = filters.cluster ? String(filters.cluster).toLowerCase() : null;
140
+ const repoStatus = filters.repoStatus ? String(filters.repoStatus).toLowerCase() : null;
141
+ const harnessDepth = filters.harnessDepth ? String(filters.harnessDepth).toLowerCase() : null;
142
+
72
143
  return [...catalog]
73
144
  .filter((entry) => (cluster ? entry.cluster === cluster : true))
145
+ .filter((entry) => (repoStatus ? entry.repoStatus === repoStatus : true))
146
+ .filter((entry) => (harnessDepth ? entry.harnessDepth === harnessDepth : true))
74
147
  .sort((a, b) => Number(a.problemId) - Number(b.problemId));
75
148
  }
76
149
 
@@ -14,20 +14,39 @@ function parseListFilters(args) {
14
14
  index += 1;
15
15
  continue;
16
16
  }
17
+ if (token === '--repo-status') {
18
+ const repoStatus = args[index + 1];
19
+ if (!repoStatus) {
20
+ return { error: 'Missing repo status after --repo-status.' };
21
+ }
22
+ filters.repoStatus = repoStatus;
23
+ index += 1;
24
+ continue;
25
+ }
26
+ if (token === '--harness-depth') {
27
+ const harnessDepth = args[index + 1];
28
+ if (!harnessDepth) {
29
+ return { error: 'Missing harness depth after --harness-depth.' };
30
+ }
31
+ filters.harnessDepth = harnessDepth;
32
+ index += 1;
33
+ continue;
34
+ }
17
35
  return { error: `Unknown list option: ${token}` };
18
36
  }
19
37
  return { filters };
20
38
  }
21
39
 
22
40
  function printProblemTable(rows, activeProblem) {
23
- console.log('ID Site Repo Cluster Active Title');
41
+ console.log('ID Site Repo Cluster Depth Active Title');
24
42
  for (const row of rows) {
25
43
  const id = row.problemId.padEnd(4, ' ');
26
44
  const site = row.siteStatus.padEnd(6, ' ');
27
45
  const repo = row.repoStatus.padEnd(10, ' ');
28
- const cluster = row.cluster.padEnd(11, ' ');
46
+ const cluster = row.cluster.padEnd(15, ' ');
47
+ const depth = row.harnessDepth.padEnd(8, ' ');
29
48
  const active = (row.problemId === activeProblem ? '*' : '-').padEnd(7, ' ');
30
- console.log(`${id} ${site} ${repo} ${cluster} ${active} ${row.title}`);
49
+ console.log(`${id} ${site} ${repo} ${cluster} ${depth} ${active} ${row.title}`);
31
50
  }
32
51
  }
33
52
 
@@ -36,6 +55,7 @@ function printProblem(problem) {
36
55
  console.log(`Title: ${problem.title}`);
37
56
  console.log(`Source: ${problem.sourceUrl}`);
38
57
  console.log(`Site status: ${problem.siteStatus}`);
58
+ console.log(`Site badge: ${problem.siteBadge ?? problem.siteStatus}`);
39
59
  console.log(`Repo status: ${problem.repoStatus}`);
40
60
  console.log(`Cluster: ${problem.cluster}`);
41
61
  console.log(`Harness depth: ${problem.harnessDepth}`);
@@ -57,7 +77,7 @@ export function runProblemCommand(args) {
57
77
 
58
78
  if (!subcommand || subcommand === 'help' || subcommand === '--help') {
59
79
  console.log('Usage:');
60
- console.log(' erdos problem list [--cluster <name>]');
80
+ console.log(' erdos problem list [--cluster <name>] [--repo-status <status>] [--harness-depth <depth>]');
61
81
  console.log(' erdos problem show <id>');
62
82
  console.log(' erdos problem use <id>');
63
83
  console.log(' erdos problem current');