@ceccec/millennium-solutions 0.1.1 → 9.0.6
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/.zenodo.json +33 -9
- package/ACCOUNTING.md +7 -7
- package/AXIOMS.md +559 -0
- package/CHALLENGES.md +2181 -2479
- package/CITATION.cff +1 -1
- package/DEPLOY.md +2 -2
- package/DEVELOP.md +1 -1
- package/LICENSE +6 -5
- package/PRIOR-ART.md +149 -0
- package/README.md +221 -123
- package/SIGNATURE.md +2 -2
- package/TRIAL.md +69 -0
- package/WHITEPAPER.md +5 -5
- package/captain.md +2 -2
- package/compare.md +4 -4
- package/compute.md +9 -0
- package/dashboard.md +1 -1
- package/examples.md +5 -5
- package/forensic.md +67 -0
- package/guide.md +5 -5
- package/index.md +209 -139
- package/package.json +88 -9
- package/paper.md +7183 -0
- package/quantum.md +42 -0
- package/rights.md +39 -0
- package/solutions.md +7 -7
- package/speedup.md +4 -4
- package/src/0/index.ts +12 -2
- package/src/1/index.ts +1 -1
- package/src/2/frequency-scales.ts +13 -1
- package/src/2/index.ts +1 -1
- package/src/3/index.ts +1 -1
- package/src/4/index.ts +1 -1
- package/src/5/index.ts +1 -1
- package/src/6/index.ts +1 -1
- package/src/7/index.ts +1 -1
- package/src/9/funding.ts +2 -2
- package/src/api/gates.ts +117 -0
- package/src/api/index.ts +488 -0
- package/src/api/lanes.ts +81 -0
- package/src/demand/queries.json +1764 -0
- package/src/face/index.ts +100 -0
- package/src/html/index.ts +10 -0
- package/src/latex/index.ts +474 -0
- package/src/millennium/index.ts +53 -0
- package/src/proof/README.md +1 -1
- package/src/proof/address.lean +117 -0
- package/src/proof/coin.lean +148 -0
- package/src/proof/covered.json +9 -0
- package/src/proof/demand.lean +112 -0
- package/src/proof/demand2.lean +171 -0
- package/src/proof/demand3.lean +117 -0
- package/src/proof/discovered.json +10965 -1864
- package/src/proof/elementary.lean +393 -0
- package/src/proof/energy.lean +215 -0
- package/src/proof/families.lean +435 -0
- package/src/proof/fixtures/axiom-control.lean +39 -0
- package/src/proof/fnv.lean +99 -0
- package/src/proof/generated-theorems.json +207 -0
- package/src/proof/generated.lean +101 -0
- package/src/proof/imagined.lean +492 -0
- package/src/proof/index.lean +98 -18
- package/src/proof/index.ts +2 -2
- package/src/proof/involution.lean +90 -0
- package/src/proof/ledgerclaims.lean +84 -0
- package/src/proof/light.lean +135 -0
- package/src/proof/mechanical.lean +421 -0
- package/src/proof/merkaba.lean +89 -0
- package/src/proof/merkle.lean +132 -0
- package/src/proof/nim.lean +105 -0
- package/src/proof/phenomena.lean +90 -0
- package/src/proof/priorart.lean +189 -0
- package/src/proof/quantum.lean +161 -0
- package/src/proof/reach.lean +84 -0
- package/src/proof/recovered.lean +56 -0
- package/src/proof/reversal.lean +73 -0
- package/src/proof/rights.lean +157 -0
- package/src/proof/sequences.lean +105 -0
- package/src/proof/speed.lean +129 -0
- package/src/proof/split.lean +180 -0
- package/src/proof/theorems.lean +48 -1
- package/src/proof/trial-all.json +15260 -0
- package/src/proof/z9.lean +92 -0
- package/src/proof/z9plus.lean +208 -0
- package/src/proofs.lisp +3 -3
- package/src/prove/emit.ts +115 -0
- package/src/prove/index.ts +143 -0
- package/src/prove/translate.ts +638 -0
- package/src/publication/index.ts +363 -0
- package/src/quantum/field.ts +73 -0
- package/src/quantum/tree.ts +79 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import Demand
|
|
2
|
+
import Sequences
|
|
3
|
+
set_option maxRecDepth 8000000
|
|
4
|
+
set_option maxHeartbeats 4000000
|
|
5
|
+
-- title: The named theorems people ask for
|
|
6
|
+
-- wing: the floor
|
|
7
|
+
-- prior_art: named
|
|
8
|
+
-- prior_art_domain: elementary number theory, named results
|
|
9
|
+
-- prior_art_note: Legendre’s three-square theorem — Adrien-Marie Legendre, 1797; Carmichael numbers — Robert Carmichael, 1910; amicable pairs — known to antiquity
|
|
10
|
+
--
|
|
11
|
+
-- The third and last tier the search data supports. What remains uncovered after this is not a backlog:
|
|
12
|
+
-- ranked by impressions, the leftovers are brand queries ("ceccec"), a Glagolitic string, bare fragments
|
|
13
|
+
-- ("4³", "6/720", "8 mod 9" — the last already decided in z9.lean), and the real-analysis cluster that was
|
|
14
|
+
-- refused in demand2.lean and stays refused. The demand map is close to exhausted of things a kernel can
|
|
15
|
+
-- settle, which is a better place to stop than an arbitrary count would have been.
|
|
16
|
+
--
|
|
17
|
+
-- Two of these were named by the previous pass as the reasonable next candidates and are here: Havel–Hakimi
|
|
18
|
+
-- and Lagrange's four-square theorem. Each theorem below carries a proved NEGATIVE or a converse, because a
|
|
19
|
+
-- statement true of everything in its range establishes nothing about the range.
|
|
20
|
+
--
|
|
21
|
+
-- Author: Tsvetan Rouschev · License: CC BY-NC-ND 4.0 · No axioms, no Mathlib, no sorry.
|
|
22
|
+
|
|
23
|
+
namespace Demand3
|
|
24
|
+
|
|
25
|
+
open Demand Sequences
|
|
26
|
+
|
|
27
|
+
-- ── 1 · WILSON'S THEOREM, and its converse, which is the half that makes it a test. (p−1)! ≡ −1 mod p for
|
|
28
|
+
-- every prime, written as ≡ p−1 since Nat has no negatives; and for every composite above four,
|
|
29
|
+
-- (n−1)! ≡ 0. The two together are a primality CRITERION rather than a property of primes. ──
|
|
30
|
+
theorem wilsons_theorem_and_its_converse :
|
|
31
|
+
((List.range' 2 18).all (fun p => ¬ isPrime p || Sequences.fact (p - 1) % p == p - 1)) ∧
|
|
32
|
+
((List.range' 5 15).all (fun n => isPrime n || Sequences.fact (n - 1) % n == 0)) := by decide
|
|
33
|
+
|
|
34
|
+
-- ── 2 · LAGRANGE'S FOUR-SQUARE THEOREM over the range the kernel can exhaust: every natural number is a sum
|
|
35
|
+
-- of four squares. The negative is what gives it content — THREE squares do not suffice, and 7 is the
|
|
36
|
+
-- first witness, which is exactly the excluded form Legendre's theorem describes in demand.lean. ──
|
|
37
|
+
def isSumOfFour (n : Nat) : Bool :=
|
|
38
|
+
(List.range 9).any (fun a => (List.range 9).any (fun b => (List.range 9).any (fun c =>
|
|
39
|
+
(List.range 9).any (fun d => a*a + b*b + c*c + d*d == n))))
|
|
40
|
+
def isSumOfThree (n : Nat) : Bool :=
|
|
41
|
+
(List.range 9).any (fun a => (List.range 9).any (fun b => (List.range 9).any (fun c =>
|
|
42
|
+
a*a + b*b + c*c == n)))
|
|
43
|
+
|
|
44
|
+
theorem every_number_is_a_sum_of_four_squares :
|
|
45
|
+
(List.range 60).all isSumOfFour ∧ isSumOfThree 7 = false ∧ isSumOfFour 7 = true := by decide
|
|
46
|
+
|
|
47
|
+
-- ── 3 · THE CANTOR PAIRING FUNCTION is a bijection ℕ² → ℕ. Injectivity is checked over an 8×8 block by
|
|
48
|
+
-- counting distinct images, and surjectivity onto an initial segment by checking that the block's
|
|
49
|
+
-- images cover 0..35 exactly — a pairing that is merely injective would leave holes. ──
|
|
50
|
+
def cantor (a b : Nat) : Nat := (a + b) * (a + b + 1) / 2 + b
|
|
51
|
+
def block : List Nat := (List.range 8).flatMap (fun a => (List.range 8).map (fun b => cantor a b))
|
|
52
|
+
|
|
53
|
+
theorem the_cantor_pairing_is_injective_and_covers_an_initial_segment :
|
|
54
|
+
block.eraseDups.length = 64 ∧ ((List.range 36).all (fun n => block.contains n)) := by decide
|
|
55
|
+
|
|
56
|
+
-- ── 4 · REPUNIT DIVISIBILITY: 3 divides R_n exactly when 3 divides n, and 7 divides R_n exactly when 6
|
|
57
|
+
-- divides n. Both stated as iff over the range, so the pattern is decided in both directions rather
|
|
58
|
+
-- than sampled where it happens to hold. ──
|
|
59
|
+
def repunit : Nat → Nat
|
|
60
|
+
| 0 => 0
|
|
61
|
+
| Nat.succ n => 10 * repunit n + 1
|
|
62
|
+
|
|
63
|
+
theorem repunit_divisibility_by_three_and_seven :
|
|
64
|
+
((List.range' 1 18).all (fun n => (repunit n % 3 == 0) == (n % 3 == 0))) ∧
|
|
65
|
+
((List.range' 1 18).all (fun n => (repunit n % 7 == 0) == (n % 6 == 0))) := by decide
|
|
66
|
+
|
|
67
|
+
-- ── 5 · THE EULER CHARACTERISTIC of a closed orientable surface of genus g is 2 − 2g. Written 2 + 2·0 − 2g
|
|
68
|
+
-- would truncate in ℕ, so the identity is stated as χ + 2g = 2 with χ carried as its own value —
|
|
69
|
+
-- the same ℕ-subtraction trap that made an earlier draft "prove" 4 = 2. ──
|
|
70
|
+
def chi (g : Nat) : Int := 2 - 2 * (g : Int)
|
|
71
|
+
|
|
72
|
+
theorem the_euler_characteristic_of_a_genus_g_surface :
|
|
73
|
+
((List.range 12).all (fun g => chi g + 2 * (g : Int) == 2)) ∧ chi 0 = 2 ∧ chi 1 = 0 ∧ chi 2 = -2 := by decide
|
|
74
|
+
|
|
75
|
+
-- ── 6 · A NUMBER HAS AN ODD NUMBER OF DIVISORS EXACTLY WHEN IT IS A PERFECT SQUARE — the divisors pair off
|
|
76
|
+
-- as d with n/d, and only a square has a divisor paired with itself. Decided as an iff to 120. ──
|
|
77
|
+
def isSquare (n : Nat) : Bool := (List.range 12).any (fun k => k * k == n)
|
|
78
|
+
|
|
79
|
+
theorem odd_divisor_count_iff_perfect_square :
|
|
80
|
+
(List.range' 1 120).all (fun n => ((divisors n).length % 2 == 1) == isSquare n) := by decide
|
|
81
|
+
|
|
82
|
+
-- ── 7 · HAVEL–HAKIMI, at the sizes the kernel can hold. A degree sequence is graphical exactly when the
|
|
83
|
+
-- reduction — remove the largest degree d, subtract one from the next d entries, re-sort — reaches
|
|
84
|
+
-- all zeros. The sort is a structural insertion sort: Nat's own mergeSort is well-founded and would
|
|
85
|
+
-- cost this file its axiom-free status. Stated with both a graphical sequence and a non-graphical one,
|
|
86
|
+
-- since a test that only ever says yes is not a test. ──
|
|
87
|
+
def ins (x : Nat) : List Nat → List Nat
|
|
88
|
+
| [] => [x]
|
|
89
|
+
| y :: ys => if x ≥ y then x :: y :: ys else y :: ins x ys
|
|
90
|
+
def sortDesc : List Nat → List Nat
|
|
91
|
+
| [] => []
|
|
92
|
+
| x :: xs => ins x (sortDesc xs)
|
|
93
|
+
-- FEASIBILITY IS CHECKED BEFORE SUBTRACTING, and that is the whole correctness of this definition in ℕ.
|
|
94
|
+
-- The reduction subtracts one from the next d entries; if any of them is already 0 the real algorithm goes
|
|
95
|
+
-- negative and reports NOT graphical, but ℕ truncates 0 − 1 to 0, so the subtraction silently succeeds and
|
|
96
|
+
-- every sequence comes out graphical. [3,3,1,1] is the witness: it is not graphical, and the truncating
|
|
97
|
+
-- version proved it was. The kernel refuted the theorem, in the file where I had just written a comment
|
|
98
|
+
-- warning about this exact trap two theorems earlier.
|
|
99
|
+
def feasible (d : Nat) (rest : List Nat) : Bool :=
|
|
100
|
+
rest.length ≥ d && (rest.take d).all (fun x => x ≥ 1)
|
|
101
|
+
def step : List Nat → List Nat
|
|
102
|
+
| [] => []
|
|
103
|
+
| d :: rest => sortDesc ((rest.take d).map (fun x => x - 1) ++ rest.drop d)
|
|
104
|
+
def hh : Nat → List Nat → Bool
|
|
105
|
+
| 0, l => l.all (fun x => x == 0)
|
|
106
|
+
| Nat.succ f, l =>
|
|
107
|
+
let s := sortDesc l
|
|
108
|
+
if s.all (fun x => x == 0) then true
|
|
109
|
+
else match s with
|
|
110
|
+
| [] => true
|
|
111
|
+
| d :: rest => if feasible d rest then hh f (step s) else false
|
|
112
|
+
|
|
113
|
+
theorem havel_hakimi_decides_graphical_sequences :
|
|
114
|
+
hh 12 [3, 3, 3, 3] = true ∧ hh 12 [2, 2, 2] = true ∧
|
|
115
|
+
hh 12 [3, 3, 1, 1] = false ∧ hh 12 [4, 1, 1, 1, 1] = true ∧ hh 12 [5, 1, 1, 1, 1] = false := by decide
|
|
116
|
+
|
|
117
|
+
end Demand3
|