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 +23 -1
- package/package.json +1 -1
- package/problems/1008/EVIDENCE.md +4 -0
- package/problems/1008/FORMALIZATION.md +5 -0
- package/problems/1008/REFERENCES.md +5 -0
- package/problems/1008/STATEMENT.md +9 -0
- package/problems/1008/problem.yaml +16 -0
- package/problems/18/EVIDENCE.md +4 -0
- package/problems/18/FORMALIZATION.md +5 -0
- package/problems/18/REFERENCES.md +6 -0
- package/problems/18/STATEMENT.md +12 -0
- package/problems/18/problem.yaml +17 -0
- package/problems/542/EVIDENCE.md +6 -0
- package/problems/542/FORMALIZATION.md +5 -0
- package/problems/542/REFERENCES.md +5 -0
- package/problems/542/STATEMENT.md +11 -0
- package/problems/542/problem.yaml +17 -0
- package/problems/89/EVIDENCE.md +4 -0
- package/problems/89/FORMALIZATION.md +5 -0
- package/problems/89/REFERENCES.md +6 -0
- package/problems/89/STATEMENT.md +10 -0
- package/problems/89/problem.yaml +16 -0
- package/src/atlas/catalog.js +73 -0
- package/src/commands/problem.js +24 -4
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
|
@@ -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,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,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,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"
|
package/src/atlas/catalog.js
CHANGED
|
@@ -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
|
|
package/src/commands/problem.js
CHANGED
|
@@ -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
|
|
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(
|
|
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');
|