@ceccec/millennium-solutions 0.1.1 → 9.0.4

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.
Files changed (91) hide show
  1. package/.zenodo.json +33 -9
  2. package/ACCOUNTING.md +7 -7
  3. package/AXIOMS.md +559 -0
  4. package/CHALLENGES.md +2181 -2479
  5. package/CITATION.cff +1 -1
  6. package/DEPLOY.md +2 -2
  7. package/DEVELOP.md +1 -1
  8. package/LICENSE +6 -5
  9. package/PRIOR-ART.md +149 -0
  10. package/README.md +221 -123
  11. package/SIGNATURE.md +2 -2
  12. package/TRIAL.md +69 -0
  13. package/WHITEPAPER.md +5 -5
  14. package/captain.md +2 -2
  15. package/compare.md +4 -4
  16. package/compute.md +9 -0
  17. package/dashboard.md +1 -1
  18. package/examples.md +5 -5
  19. package/forensic.md +67 -0
  20. package/guide.md +5 -5
  21. package/index.md +209 -139
  22. package/package.json +88 -9
  23. package/paper.md +7183 -0
  24. package/quantum.md +42 -0
  25. package/rights.md +39 -0
  26. package/solutions.md +7 -7
  27. package/speedup.md +4 -4
  28. package/src/0/index.ts +12 -2
  29. package/src/1/index.ts +1 -1
  30. package/src/2/frequency-scales.ts +13 -1
  31. package/src/2/index.ts +1 -1
  32. package/src/3/index.ts +1 -1
  33. package/src/4/index.ts +1 -1
  34. package/src/5/index.ts +1 -1
  35. package/src/6/index.ts +1 -1
  36. package/src/7/index.ts +1 -1
  37. package/src/9/funding.ts +2 -2
  38. package/src/api/gates.ts +117 -0
  39. package/src/api/index.ts +488 -0
  40. package/src/api/lanes.ts +81 -0
  41. package/src/demand/queries.json +1764 -0
  42. package/src/face/index.ts +100 -0
  43. package/src/html/index.ts +10 -0
  44. package/src/latex/index.ts +474 -0
  45. package/src/millennium/index.ts +53 -0
  46. package/src/proof/README.md +1 -1
  47. package/src/proof/address.lean +117 -0
  48. package/src/proof/coin.lean +148 -0
  49. package/src/proof/covered.json +9 -0
  50. package/src/proof/demand.lean +112 -0
  51. package/src/proof/demand2.lean +171 -0
  52. package/src/proof/demand3.lean +117 -0
  53. package/src/proof/discovered.json +10965 -1864
  54. package/src/proof/elementary.lean +393 -0
  55. package/src/proof/energy.lean +215 -0
  56. package/src/proof/families.lean +435 -0
  57. package/src/proof/fixtures/axiom-control.lean +39 -0
  58. package/src/proof/fnv.lean +99 -0
  59. package/src/proof/generated-theorems.json +207 -0
  60. package/src/proof/generated.lean +101 -0
  61. package/src/proof/imagined.lean +492 -0
  62. package/src/proof/index.lean +98 -18
  63. package/src/proof/index.ts +2 -2
  64. package/src/proof/involution.lean +90 -0
  65. package/src/proof/ledgerclaims.lean +84 -0
  66. package/src/proof/light.lean +135 -0
  67. package/src/proof/mechanical.lean +421 -0
  68. package/src/proof/merkaba.lean +89 -0
  69. package/src/proof/merkle.lean +132 -0
  70. package/src/proof/nim.lean +105 -0
  71. package/src/proof/phenomena.lean +90 -0
  72. package/src/proof/priorart.lean +189 -0
  73. package/src/proof/quantum.lean +161 -0
  74. package/src/proof/reach.lean +84 -0
  75. package/src/proof/recovered.lean +56 -0
  76. package/src/proof/reversal.lean +73 -0
  77. package/src/proof/rights.lean +157 -0
  78. package/src/proof/sequences.lean +105 -0
  79. package/src/proof/speed.lean +129 -0
  80. package/src/proof/split.lean +180 -0
  81. package/src/proof/theorems.lean +48 -1
  82. package/src/proof/trial-all.json +15260 -0
  83. package/src/proof/z9.lean +92 -0
  84. package/src/proof/z9plus.lean +208 -0
  85. package/src/proofs.lisp +3 -3
  86. package/src/prove/emit.ts +115 -0
  87. package/src/prove/index.ts +143 -0
  88. package/src/prove/translate.ts +638 -0
  89. package/src/publication/index.ts +363 -0
  90. package/src/quantum/field.ts +73 -0
  91. package/src/quantum/tree.ts +79 -0
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Quantum Proofs of the Clay Millennium Problems — Theorem Framework
3
3
  *
4
- * Licensed under CC BY-NC 4.0
5
- * https://creativecommons.org/licenses/by-nc/4.0/
4
+ * Licensed under CC BY-NC-ND 4.0
5
+ * https://creativecommons.org/licenses/by-nc-nd/4.0/
6
6
  *
7
7
  * Attribution: Tsvetan Rouschev (ceccec@psg.bg)
8
8
  * Non-commercial use only. For commercial licensing, contact the author.
@@ -0,0 +1,90 @@
1
+ set_option maxRecDepth 8000000
2
+ -- title: What every involution gives, and what it does not
3
+ -- wing: the ring
4
+ -- prior_art: named
5
+ -- prior_art_domain: elementary group theory — orbit decomposition of an order-two permutation
6
+ -- prior_art_note: that a permutation of order two decomposes a finite set into fixed points and
7
+ -- transpositions, and that the number of fixed points therefore matches the parity of the set, is
8
+ -- classical and long predates this deposit. It is the orbit-counting argument in any first course.
9
+ -- What is this deposit's own here is the EXHAUSTIVE decision over ℤ/9 and the measured refusal below.
10
+ --
11
+ -- THE QUESTION, and it was asked as "do involutions always give a harmonic result?".
12
+ --
13
+ -- Two readings of "harmonic" are decided here over ALL 2620 involutions of a nine-element set, enumerated
14
+ -- rather than sampled. One holds everywhere. The other does not, and the second is the more useful answer,
15
+ -- because a claim that survives only on the examples someone happened to pick is the thing this deposit
16
+ -- exists to refuse.
17
+ --
18
+ -- ALWAYS — every involution fixes at least one point, and its fixed points are ODD in number.
19
+ -- On nine elements the centre is never absent. There is no involution of ℤ/9 with nothing
20
+ -- standing still, and that is not a property of the ones chosen here, it is a property of all
21
+ -- of them.
22
+ --
23
+ -- NOT ALWAYS — "every swapped pair sums to the same value", which is what `refl d = 10 - d` does and
24
+ -- what makes the coin's two sides sides of one thing. That is RARE: 90 of 2620, about one in
25
+ -- twenty-nine. It is a property of a particular involution, never of involutions.
26
+
27
+ namespace Involution
28
+
29
+ /-- Every involution of a finite list, as its set of orbits: `(a, a)` is a fixed point, `(a, b)` a swap. -/
30
+ -- The fuel is not a hedge and not an approximation: `rest.erase b` is smaller than `rest` but not
31
+ -- STRUCTURALLY smaller, so Lean cannot see the recursion terminate and — more to the point — a
32
+ -- well-founded definition does not reduce, which would leave every `decide` below unable to evaluate.
33
+ -- Counting down a Nat is structural, it reduces, and nine elements can nest at most nine deep. Ten is
34
+ -- passed, and `the_fuel_was_not_the_limit` decides that eleven produces the same list: the enumeration
35
+ -- stopped because it was complete, not because it ran out.
36
+ def matchings : Nat → List Nat → List (List (Nat × Nat))
37
+ | 0, _ => []
38
+ | _, [] => [[]]
39
+ | fuel + 1, a :: rest =>
40
+ (matchings fuel rest).map (fun m => (a, a) :: m)
41
+ ++ rest.flatMap (fun b => (matchings fuel (rest.erase b)).map (fun m => (a, b) :: m))
42
+
43
+ def nine : List Nat := [0, 1, 2, 3, 4, 5, 6, 7, 8]
44
+ def all : List (List (Nat × Nat)) := matchings 10 nine
45
+
46
+ def fixedPoints (m : List (Nat × Nat)) : Nat := (m.filter (fun p => p.1 == p.2)).length
47
+ def swaps (m : List (Nat × Nat)) : List (Nat × Nat) := m.filter (fun p => p.1 != p.2)
48
+
49
+ -- ── THE ENUMERATION IS COMPLETE, stated first so every count below is over a domain of known size ───────
50
+ theorem there_are_2620_involutions_of_nine : all.length = 2620 := by decide
51
+
52
+ theorem the_fuel_was_not_the_limit : (matchings 11 nine).length = all.length := by decide
53
+
54
+ -- ── WHAT ALWAYS HOLDS: the centre is never absent ───────────────────────────────────────────────────────
55
+ -- Both directions of the same fact. The first is what was asked; the second is why, and it is the sharper
56
+ -- statement because it rules out two fixed points as firmly as it rules out none.
57
+ theorem every_involution_fixes_at_least_one_point :
58
+ all.all (fun m => fixedPoints m ≥ 1) := by decide
59
+
60
+ theorem the_fixed_points_are_always_odd :
61
+ all.all (fun m => fixedPoints m % 2 == 1) := by decide
62
+
63
+ -- Nothing is fixed by every involution — the centre exists, but it is not the same centre.
64
+ -- Stated so the theorem above cannot be misread as naming a universal fixed element.
65
+ theorem no_single_point_is_fixed_by_all :
66
+ nine.all (fun d => ¬ all.all (fun m => m.contains (d, d))) := by decide
67
+
68
+ -- ── WHAT DOES NOT HOLD: the constant sum is rare ────────────────────────────────────────────────────────
69
+ -- `refl d = 10 - d` sends every swapped pair to the same total, which is the sense in which the coin's
70
+ -- reflection is harmonic. Asked of ALL involutions, that fails, and the count says how badly.
71
+ def constantSum (m : List (Nat × Nat)) : Bool :=
72
+ (swaps m).all (fun p => p.1 + p.2 == ((swaps m).head?.map (fun q => q.1 + q.2)).getD (p.1 + p.2))
73
+
74
+ theorem the_constant_sum_is_rare :
75
+ (all.filter constantSum).length = 90 := by decide
76
+
77
+ theorem so_involutions_are_not_all_harmonic_in_that_sense :
78
+ ¬ all.all constantSum := by decide
79
+
80
+ -- ── THE DEPOSIT'S OWN REFLECTION IS ONE OF THE NINETY ───────────────────────────────────────────────────
81
+ -- The coin's involution on 1..8 with 0 fixed: pairs summing to 9 within the nine-element set. Naming it
82
+ -- inside the enumeration is what stops "refl is harmonic" from being read as "involutions are harmonic".
83
+ def coinLike : List (Nat × Nat) := [(0, 0), (1, 8), (2, 7), (3, 6), (4, 5)]
84
+
85
+ theorem the_coins_reflection_is_harmonic_and_is_one_of_the_ninety :
86
+ constantSum coinLike = true
87
+ ∧ fixedPoints coinLike = 1
88
+ ∧ (swaps coinLike).all (fun p => p.1 + p.2 == 9) := by decide
89
+
90
+ end Involution
@@ -0,0 +1,84 @@
1
+ import Merkle
2
+ set_option maxRecDepth 8000000
3
+ -- title: What the ledger claims
4
+ -- wing: the address
5
+ -- prior_art: named
6
+ -- prior_art_domain: hash trees and membership proofs
7
+ -- prior_art_note: `membership_grows_by_one_seal_per_doubling` and `membership_is_logarithmic_not_linear`
8
+ -- restate the O(log n) membership proof of a hash tree — Ralph Merkle, 1979 (thesis); CRYPTO 1987 — which
9
+ -- merkle.lean in this same deposit already credits. Classified `unbounded` on the ground that the subject is
10
+ -- this deposit's own ledger; the ledger is its own, the logarithm is not.
11
+ -- Bounded: what is not prior art is what THIS ledger claims — the 967-receipt case, the saving arithmetic,
12
+ -- and the 128-bit seal width as this deposit mints it.
13
+ -- prior_art_search: literature search performed 2026-09-05, terms "Merkle tree membership proof logarithmic
14
+ -- verification path length"; prior art found and credited.
15
+ -- prior_art_pool: unbounded
16
+ -- the subject is this deposit's own ledger; no external work can restate it.
17
+ -- BOUNDED means a search is well posed and simply has not been run — the row is unclassified because
18
+ -- nobody looked. UNBOUNDED means the subject is this artifact, so there is no pool to search and the
19
+ -- row will stay unclassified however much work is done. They look identical in a count and need
20
+ -- opposite responses, which is the distinction uuidna-49 asked for and nobody had drawn.
21
+ -- prior_art_own: claims about this deposit's own ledger
22
+ -- Three claims the prose made in words and cited to entries that no longer stand. Restated here as
23
+ -- propositions the kernel decides, so the sentences keep a citation that is actually proved.
24
+ -- Author: Tsvetan Rouschev · License: CC BY-NC-ND 4.0
25
+ --
26
+ -- No axioms, no Mathlib, no sorry. Merkle (and through it Address, Fnv) is imported, not restated.
27
+
28
+ namespace LedgerClaims
29
+
30
+ open Address Fnv Merkle
31
+
32
+ -- ── 1 · the seal is 128 bits, and membership is logarithmic, not linear ─────────────────────────────
33
+ -- A seal is a uuid: 16 bytes. `rounds` counts the pairing rounds a fold needs for n leaves — which is the
34
+ -- number of sibling seals an inclusion proof carries. Fuel-bounded so the recursion is structural.
35
+ def rounds : Nat → Nat → Nat
36
+ | 0, _ => 0
37
+ | _, 0 => 0
38
+ | _, 1 => 0
39
+ | Nat.succ f, n => 1 + rounds f ((n + 1) / 2)
40
+
41
+ -- A seal is a uuid and a uuid is sixteen bytes, so a seal is 128 bits. Stated because everything downstream
42
+ -- counts in it: the proof size below is a number of SEALS, and a number of seals only means something once
43
+ -- the width of one is fixed. The multiplication is trivial; naming the unit is not.
44
+ theorem a_seal_is_128_bits : (toUuidBytes [97]).length * 8 = 128 := by decide
45
+
46
+ -- doubling the set adds exactly ONE sibling — the signature of a logarithm, checked across an octave.
47
+ theorem membership_grows_by_one_seal_per_doubling :
48
+ rounds 40 2 = 1 ∧ rounds 40 4 = 2 ∧ rounds 40 8 = 3 ∧ rounds 40 16 = 4 ∧
49
+ rounds 40 32 = 5 ∧ rounds 40 64 = 6 ∧ rounds 40 128 = 7 ∧ rounds 40 256 = 8 := by decide
50
+
51
+ -- and it is genuinely sublinear: at 1024 leaves a proof carries 10 seals, not 1024 — 1280 bits, not 131072.
52
+ -- (An earlier form of this compared seal-bits against a leaf COUNT; the kernel refuted it, correctly. Both
53
+ -- sides are now the same unit, which is the only way the comparison means anything.)
54
+ theorem membership_is_logarithmic_not_linear :
55
+ rounds 40 1024 = 10 ∧ rounds 40 1024 < 1024 ∧ rounds 40 1024 * 128 < 1024 * 128 := by decide
56
+
57
+ -- ── 2 · the 967-receipt case ────────────────────────────────────────────────────────────────────────
58
+ -- Verifying membership costs the proof, not the computation: bill the 20 bits verification actually
59
+ -- spends, against a computation worth 967 — the saving is the difference, and nothing else.
60
+ def saving (value verify : Nat) : Nat := value - verify
61
+
62
+ theorem the_967_receipt_case : saving 967 20 = 947 ∧ 20 + 947 = 967 := by decide
63
+
64
+ -- the saving is never more than the value, at any size — an accounting identity, not a promise.
65
+ theorem a_saving_never_exceeds_its_value :
66
+ (List.range 40).all (fun v => (List.range 40).all (fun w => saving v w ≤ v)) := by decide
67
+
68
+ -- ── 3 · an address is a pointer, not the payload ────────────────────────────────────────────────────
69
+ -- A fixed-width address cannot be the thing it names: there are more payloads than addresses, so two
70
+ -- payloads must share one. Shown at 4 bits, where the whole domain fits in the kernel.
71
+ def addr4 (x : Nat) : Nat := x % 16
72
+
73
+ theorem more_payloads_than_addresses_must_collide :
74
+ ((List.range 17).map addr4).eraseDups.length < 17 := by decide
75
+
76
+ theorem the_address_does_not_determine_the_payload :
77
+ ((List.range 17).any (fun a => (List.range 17).any (fun b => a != b && addr4 a == addr4 b))) = true := by decide
78
+
79
+ -- not just at 1024: across the whole octave of set sizes, a proof is strictly smaller than the set it
80
+ -- proves membership in. Decided over every n from 2 to 256, not sampled at one convenient point.
81
+ theorem a_proof_is_smaller_than_its_set_across_the_octave :
82
+ (List.range' 2 255).all (fun n => rounds 40 n < n) := by decide
83
+
84
+ end LedgerClaims
@@ -0,0 +1,135 @@
1
+ set_option maxRecDepth 8000000
2
+ -- title: Light, space and time — arithmetic on numbers a standards body fixed
3
+ -- wing: the floor
4
+ -- prior_art: named
5
+ -- prior_art_domain: metrology — the International System of Units
6
+ -- prior_art_note: the exact numerical values below are DEFINITIONS adopted by the Conférence Générale des
7
+ -- Poids et Mesures, not results of this deposit: the metre from the speed of light (17th CGPM, 1983) and
8
+ -- the seven defining constants fixed exactly in the 2019 revision of the SI, effective 20 May 2019
9
+ -- (BIPM, https://www.bipm.org/en/measurement-units/si-defining-constants). Nothing here measures anything.
10
+ --
11
+ -- WHY A FILE ABOUT LIGHT SPEED CAN EXIST IN A DEPOSIT THAT CLAIMS NO PHYSICS.
12
+ --
13
+ -- Since 1983 the metre has been DEFINED from the speed of light, and since 2019 all seven SI base units are
14
+ -- defined by fixing seven constants to exact numerical values with no uncertainty. That makes 299792458 a
15
+ -- number a committee adopted, not a quantity anyone measured — the measuring moved to the other side of the
16
+ -- definition. Arithmetic on it is arithmetic on an integer, and the kernel can decide it.
17
+ --
18
+ -- What follows is therefore about the SI, not about nature. Every theorem here would be equally true if the
19
+ -- universe were different, because none of them is about the universe.
20
+ --
21
+ -- AND THE LIMIT IS PROVED, NOT PROMISED. The digital root of 299792458 is 1. That is a fact about the
22
+ -- numeral, in metres per second, and nothing else: doubling the numeral changes the root to 2, while
23
+ -- multiplying by a hundred leaves it alone. Both are decided below. A root that moves when you change the
24
+ -- unit and stays when you change the scale is a property of decimal notation, and reading significance into
25
+ -- it would be the overclaim this deposit exists to refuse.
26
+
27
+ -- CLAIMS: physical
28
+ namespace Light
29
+
30
+ -- ── THE SEVEN, as exact integers. h, e, k and N_A are recorded as their DIGIT SEQUENCES: their defining
31
+ -- values carry powers of ten that Nat cannot hold, and the arithmetic below concerns the digits. Saying
32
+ -- so here rather than letting a reader assume the number is the quantity. ────────────────────────────
33
+ def c : Nat := 299792458 -- m/s, exact
34
+ def dNuCs : Nat := 9192631770 -- Hz, exact — the caesium-133 hyperfine transition
35
+ def hDigits : Nat := 662607015 -- h = 6.62607015 × 10⁻³⁴ J s
36
+ def eDigits : Nat := 1602176634 -- e = 1.602176634 × 10⁻¹⁹ C
37
+ def kDigits : Nat := 1380649 -- k = 1.380649 × 10⁻²³ J/K
38
+ def naDigits : Nat := 602214076 -- N_A = 6.02214076 × 10²³ mol⁻¹
39
+ def kcd : Nat := 683 -- K_cd, lm/W, exact
40
+
41
+ def defining : List Nat := [c, dNuCs, hDigits, eDigits, kDigits, naDigits, kcd]
42
+
43
+ theorem the_si_fixes_exactly_seven_constants : defining.length = 7 := by decide
44
+
45
+ -- ── SPACE FROM TIME, THROUGH LIGHT ──────────────────────────────────────────────────────────────────────
46
+ -- The chain is definitional and it runs one way. ΔνCs fixes the second; the second and c fix the metre. So
47
+ -- in the SI a length is a duration scaled by a fixed integer, and the integer is the speed of light.
48
+ def travel (seconds : Nat) : Nat := c * seconds -- metres crossed in a whole number of seconds
49
+ def periods (seconds : Nat) : Nat := dNuCs * seconds -- caesium periods elapsed in the same interval
50
+
51
+ theorem travel_at_one_returns_the_defined_constant : travel 1 = c := by decide
52
+
53
+ -- ONE INTERVAL, TWO UNITS: the same second is 299792458 metres of light and 9192631770 caesium periods.
54
+ -- That is the SI's join between space and time, and it is an identity between two definitions rather than
55
+ -- a discovery about either.
56
+ theorem travel_and_periods_at_one_return_their_constants :
57
+ travel 1 = 299792458 ∧ periods 1 = 9192631770 := by decide
58
+
59
+ -- Linear over the whole range checked, so the chain is a scaling and not a coincidence at one point.
60
+ theorem the_chain_scales :
61
+ ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].all (fun s => travel s == c * s))
62
+ ∧ ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].all (fun s => periods s == dNuCs * s)) := by decide
63
+
64
+ -- ── THE RESIDUES, DECIDED ───────────────────────────────────────────────────────────────────────────────
65
+ -- Where each defining numeral lands in this deposit's ring. Stated as arithmetic; read as nothing else.
66
+ def root (n : Nat) : Nat := if n == 0 then 9 else 1 + (n - 1) % 9
67
+
68
+ theorem the_roots_of_the_seven :
69
+ defining.map root = [1, 9, 6, 9, 4, 1, 8] := by decide
70
+
71
+ -- Three land on the triad {3,6,9} and four on the units. Both counted, so neither can be quoted alone.
72
+ theorem three_on_the_triad_and_four_on_the_units :
73
+ (defining.filter (fun n => [3, 6, 9].contains (root n))).length = 3
74
+ ∧ (defining.filter (fun n => [1, 2, 4, 5, 7, 8].contains (root n))).length = 4 := by decide
75
+
76
+ -- AND THEY DO NOT COVER THE RING. Five residues occur, four never do. Stated because seven numbers landing
77
+ -- on five of nine residues is what unrelated numbers do, and the absence is the honest half of the count.
78
+ theorem the_seven_roots_miss_four_residues :
79
+ (defining.map root).eraseDups.length = 5
80
+ ∧ ([1, 2, 3, 4, 5, 6, 7, 8, 9].filter (fun d => ¬ (defining.map root).contains d)) = [2, 3, 5, 7] := by decide
81
+
82
+ -- ── THE COINCIDENCE A READER WILL FIND, NAMED AND DEFUSED ──────────────────────────────────────────────
83
+ -- The four residues the seven constants miss are 2, 3, 5 and 7 — exactly the primes below nine. Nobody
84
+ -- reading the theorem above will fail to notice that, and a deposit that states an absence and says nothing
85
+ -- further hands the reader the job of supplying its meaning. So it is stated here as an equality, and then
86
+ -- shown to be an accident of the numerals: doubling ONE of the seven — a choice of unit, not a fact about
87
+ -- anything — moves the missing set to {2,3,5,8}, which is not the primes. A pattern that a change of unit
88
+ -- destroys was never a pattern about the quantities.
89
+ def kcdDoubled : Nat := 1366 -- K_cd expressed against a unit half the size; the same luminous efficacy
90
+ def alternative : List Nat := [c, dNuCs, hDigits, eDigits, kDigits, naDigits, kcdDoubled]
91
+
92
+ theorem the_absent_residues_are_the_primes_below_nine :
93
+ ([1, 2, 3, 4, 5, 6, 7, 8, 9].filter (fun d => ¬ (defining.map root).contains d)) = [2, 3, 5, 7] := by decide
94
+
95
+ theorem and_a_change_of_unit_destroys_it :
96
+ ([1, 2, 3, 4, 5, 6, 7, 8, 9].filter (fun d => ¬ (alternative.map root).contains d)) = [2, 3, 5, 8]
97
+ ∧ alternative.length = defining.length := by decide
98
+
99
+ -- ── THE LIMIT: THE ROOT IS A PROPERTY OF THE NUMERAL, NOT OF LIGHT ──────────────────────────────────────
100
+ -- If the digital root of c said something about light, it could not depend on the unit chosen to write c in.
101
+ -- It does. Doubling the numeral moves the root; scaling by a power of ten does not. So the root tracks
102
+ -- decimal notation in a chosen unit — and the metre is DEFINED to make this particular numeral come out.
103
+ theorem the_root_moves_with_the_unit_so_it_is_not_about_light :
104
+ root c = 1 ∧ root (2 * c) = 2 ∧ root (100 * c) = 1 := by decide
105
+
106
+ -- ── THE REFUSAL, as a theorem so it is checked and not merely written ───────────────────────────────────
107
+ -- Every number in this file is a definition adopted by a committee. No proposition here measures a
108
+ -- quantity, predicts an observation, or constrains a physical theory, and none could: arithmetic on a
109
+ -- definition returns the definition.
110
+ -- ── THE CLAIM, STATED BOLDLY, WITH THE COMPUTATION THAT BREAKS IT ──────────────────────────────────────
111
+ -- THE SEVEN SI DEFINING CONSTANTS HAVE DIGITAL ROOTS 1, 9, 6, 9, 4, 1, 8 — AND THE FOUR RESIDUES THEY NEVER
112
+ -- REACH ARE EXACTLY THE PRIMES BELOW NINE: 2, 3, 5, 7.
113
+ --
114
+ -- That is a claim about the actual SI system as the CGPM fixed it, not about a toy. Every numeral here is
115
+ -- the committee's own: c = 299792458, ΔνCs = 9192631770, h, e, k, N_A, K_cd. `the_roots_of_the_seven` and
116
+ -- `the_absent_residues_are_the_primes_below_nine` decide it over the real values, so a critic who disputes
117
+ -- it computes the digital roots and shows a different list. Nothing here hides behind hedging.
118
+ --
119
+ -- AND THE FALSIFIER IS ALREADY PROVED, IN THIS FILE, DIRECTLY BELOW THE CLAIM.
120
+ -- `and_a_change_of_unit_destroys_it` expresses K_cd against a unit half the size — the same luminous
121
+ -- efficacy, a different numeral — and the four absent residues become 2, 3, 5, 8. The primes are gone.
122
+ -- `the_root_moves_with_the_unit_so_it_is_not_about_light` shows the same for c.
123
+ --
124
+ -- So the claim stands with its own defeater attached: THE PATTERN IS REAL IN SI AND IS A PROPERTY OF THE
125
+ -- CHOSEN UNITS, NOT OF NATURE. A critic does not need to find the weakness — it is stated, decided, and
126
+ -- published beside the claim it limits. That is what makes the bold form honest rather than reckless.
127
+ --
128
+ -- What is NOT claimed, because nothing here decides it: that the pattern predicts an observation, constrains
129
+ -- a physical theory, or would survive a different unit system. It would not, and the file proves it. That declaration stood here and was deleted: a
130
+ -- literal decided against itself is green whatever the file says, so it could never carry a refusal. What a
131
+ -- proposition mentions is a property of the source text, and `contradictions.ts` is where that is checked.
132
+ theorem the_definitions_are_seven_and_travel_fixes_zero :
133
+ defining.length = 7 ∧ travel 0 = 0 := by decide
134
+
135
+ end Light