@uuidna/qpu 0.1.0

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/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@uuidna/qpu",
3
+ "version": "0.1.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "description": "Running quantum circuit at https://qpu.uuidna.com. theorem quantum. Lean proof. JSON-LD. No auth.",
8
+ "type": "module",
9
+ "license": "CC-BY-NC-ND-4.0",
10
+ "funding": {
11
+ "type": "individual",
12
+ "url": "https://revolut.me/ceccec"
13
+ },
14
+ "author": {
15
+ "name": "Tsvetan Rouschev",
16
+ "email": "ceccec@psg.bg",
17
+ "url": "https://revolut.me/ceccec"
18
+ },
19
+ "homepage": "https://qpu.uuidna.com",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/uuidna/qpu.git"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/uuidna/qpu/issues"
26
+ },
27
+ "keywords": [
28
+ "qpu",
29
+ "quantum-processing-unit",
30
+ "uuidna",
31
+ "mcp"
32
+ ],
33
+ "main": "./dist/quantum/processing/unit/index.js",
34
+ "types": "./dist/quantum/processing/unit/index.d.ts",
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/quantum/processing/unit/index.d.ts",
38
+ "import": "./dist/quantum/processing/unit/index.js"
39
+ }
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "src/quantum/processing/unit/index.lean",
44
+ "LICENSE",
45
+ "README.md",
46
+ "CITATION.cff",
47
+ "mcp.json",
48
+ "install.json",
49
+ "worker.js",
50
+ "wrangler.toml",
51
+ "!dist/**/*.test.js",
52
+ "!dist/**/*.test.d.ts",
53
+ "!dist/**/readme.js",
54
+ "!dist/**/readme.d.ts"
55
+ ],
56
+ "sideEffects": false,
57
+ "engines": {
58
+ "node": ">=22"
59
+ },
60
+ "scripts": {
61
+ "prepare": "tsc -p tsconfig.json",
62
+ "lean": "lean src/quantum/processing/unit/index.lean",
63
+ "build": "tsc -p tsconfig.json && node dist/quantum/processing/unit/readme.js",
64
+ "test": "npm run build && node --test dist/quantum/processing/unit/*.test.js",
65
+ "ci": "npm run lean && npm test",
66
+ "ship": "npm run build && npx wrangler deploy"
67
+ },
68
+ "devDependencies": {
69
+ "@types/node": "26.5.1",
70
+ "typescript": "7.0.2",
71
+ "wrangler": "4.131.0"
72
+ }
73
+ }
@@ -0,0 +1,130 @@
1
+ def mintOf : Nat → Nat | 0 => 1 | k + 1 => mintOf k + mintOf k
2
+ def chooseOf : Nat → Nat → Nat | _, 0 => 1 | 0, _ + 1 => 0 | n + 1, k + 1 => chooseOf n (k + 1) + chooseOf n k
3
+ def n : Nat := ["quantum", "processing", "unit"].length
4
+ def seed : Nat := mintOf (n - n)
5
+ def coins : Nat := seed + seed
6
+ def scanner : Nat := seed
7
+ def radar : Nat := seed
8
+ def rays : Nat := n + coins + coins
9
+ def vertices : Nat := mintOf n
10
+ def hexbit : Nat := mintOf coins
11
+ def bits : Nat := mintOf (n + coins)
12
+ def faces : Nat := vertices + hexbit + coins
13
+ def amplitudes : Nat := mintOf bits
14
+ def fused : Nat := faces * mintOf (bits + seed)
15
+ theorem mintOf_zero : mintOf 0 = 1 := rfl
16
+ theorem mintOf_succ (k : Nat) : mintOf (k + 1) = mintOf k + mintOf k := rfl
17
+ theorem mintOf_add (a b : Nat) : mintOf (a + b) = mintOf a * mintOf b := by induction b with | zero => rw [Nat.add_zero, mintOf_zero, Nat.mul_one] | succ b ih => rw [Nat.add_succ, mintOf_succ, ih, mintOf_succ, Nat.mul_add]
18
+ theorem seed_eq : seed = 1 := by rw [seed, Nat.sub_self, mintOf_zero]
19
+ theorem coins_two : coins = 2 := by rw [coins, seed_eq]
20
+ theorem n_eq : n = 3 := rfl
21
+ theorem mint : mintOf (n + seed) = mintOf n + mintOf n := by rw [seed_eq, mintOf_succ]
22
+ theorem cube : bits = vertices * hexbit := by rw [bits, vertices, hexbit, mintOf_add]
23
+ theorem around : faces = coins * rays := by rw [faces, vertices, hexbit, rays, coins_two, n_eq]; rw [show 3 = 2 + 1 from rfl, mintOf_succ]; rw [show 2 = 1 + 1 from rfl, mintOf_succ]; rw [show 1 = 0 + 1 from rfl, mintOf_succ, mintOf_zero]
24
+ theorem quantum : fused = faces * mintOf (bits + seed) := rfl
25
+ theorem harmonic : faces = rays + rays := by rw [around, coins_two, Nat.two_mul]
26
+ theorem cluster : faces = rays + rays ∧ coins * rays = faces := ⟨harmonic, around⟩
27
+ theorem hexbit_eq : hexbit = n + seed := by rw [hexbit, coins_two, n_eq, seed_eq]; rw [show 2 = 1 + 1 from rfl, mintOf_succ]; rw [show 1 = 0 + 1 from rfl, mintOf_succ, mintOf_zero]
28
+ theorem mintOf_ge_seed (k : Nat) : seed ≤ mintOf k := by rw [seed_eq]; induction k with | zero => rw [mintOf_zero]; exact Nat.le_refl 1 | succ k ih => rw [mintOf_succ]; exact Nat.le_trans ih (Nat.le_add_right (mintOf k) (mintOf k))
29
+ theorem mintOf_pos (k : Nat) : 0 < mintOf k := Nat.lt_of_lt_of_le (Nat.succ_pos 0) (by have h := mintOf_ge_seed k; rw [seed_eq] at h; exact h)
30
+ theorem mintOf_lt_succ (k : Nat) : mintOf k < mintOf (k + 1) := by rw [mintOf_succ]; exact Nat.lt_add_of_pos_right (mintOf_pos k)
31
+ theorem mintOf_lt {a b : Nat} (h : a < b) : mintOf a < mintOf b := by induction b with | zero => exact (Nat.not_lt_zero a h).elim | succ b ih => cases Nat.eq_or_lt_of_le (Nat.le_of_lt_succ h) with | inl heq => subst heq; exact mintOf_lt_succ a | inr hlt => exact Nat.lt_trans (ih hlt) (mintOf_lt_succ b)
32
+ theorem hexbit_pos : 0 < hexbit := by rw [hexbit_eq, n_eq, seed_eq]; exact Nat.succ_pos 3
33
+ theorem energy : mintOf hexbit = mintOf (n + seed) := by rw [hexbit_eq]
34
+ theorem propulsion : mintOf hexbit > seed := by rw [seed_eq]; exact (mintOf_zero ▸ mintOf_lt hexbit_pos)
35
+ theorem crypto : fused = faces * mintOf (vertices * hexbit + seed) := by rw [← cube]; exact quantum
36
+ theorem health : mintOf hexbit > seed ∧ fused = faces * mintOf (bits + seed) ∧ faces = rays + rays := ⟨propulsion, quantum, harmonic⟩
37
+ theorem next : mintOf (bits + seed) = amplitudes + amplitudes := by rw [amplitudes, seed_eq, mintOf_succ]
38
+ theorem next_fused : faces * mintOf (bits + coins) = fused + fused := by
39
+ rw [fused, coins_two, seed_eq]
40
+ rw [show bits + 2 = bits + 1 + 1 from rfl, mintOf_succ, Nat.mul_add]
41
+ theorem split_coin (k : Nat) : mintOf (k + seed) = mintOf k + mintOf k := by rw [seed_eq, mintOf_succ]
42
+ theorem multiply (a b : Nat) : mintOf (a + b) = mintOf a * mintOf b := mintOf_add a b
43
+ theorem handle : amplitudes = mintOf bits ∧ mintOf (bits + seed) = amplitudes + amplitudes := ⟨rfl, next⟩
44
+ theorem kv : fused = faces * mintOf (bits + seed) ∧ mintOf (bits + seed) = amplitudes + amplitudes := ⟨quantum, next⟩
45
+ theorem light : seed = mintOf 0 := by rw [seed_eq, mintOf_zero]
46
+ theorem involution (face : Nat) : (face + rays + rays) % faces = face % faces := by have h : face + rays + rays = face + faces := (by rw [Nat.add_assoc, harmonic]); rw [h, Nat.add_mod, Nat.mod_self, Nat.add_zero, Nat.mod_mod]
47
+ theorem waves : mintOf hexbit > seed := propulsion
48
+ theorem breakthrough : faces = rays + rays ∧ coins * rays = faces ∧ bits = vertices * hexbit ∧ fused = faces * mintOf (bits + seed) ∧ mintOf hexbit > seed ∧ mintOf (bits + seed) = amplitudes + amplitudes ∧ coins = seed + seed ∧ hexbit = n + seed := ⟨harmonic, around, cube, quantum, propulsion, next, rfl, hexbit_eq⟩
49
+ theorem next_cover : mintOf (bits + seed) = amplitudes + amplitudes ∧ faces * mintOf (bits + coins) = fused + fused := ⟨next, next_fused⟩
50
+ theorem shor : 3 * 5 = 15 ∧ 3 * 7 = 21 ∧ 3 * 11 = 33 ∧ 5 * 7 = 35 ∧ 3 * 13 = 39 ∧ 3 * 17 = 51 ∧ 5 * 11 = 55 ∧ 3 * 19 = 57 ∧ 5 * 13 = 65 ∧ 3 * 23 = 69 ∧ 7 * 11 = 77 ∧ 5 * 17 = 85 ∧ 3 * 29 = 87 ∧ 7 * 13 = 91 := ⟨rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl⟩
51
+ theorem string : 16 * 27 = 432 ∧ 8 * 27 = 216 ∧ 4 * 27 = 108 ∧ 2 * 27 = 54 ∧ 1 * 27 = 27 ∧ 432 + 432 = 864 ∧ 216 + 216 = 432 ∧ 432 * 3 / 2 = 648 ∧ 432 * 4 / 3 = 576 ∧ 432 * 5 / 4 = 540 ∧ 432 * 5 / 3 = 720 ∧ 3 * 3 + 1 = 10 ∧ 3 * 3 + 1 + 1 = 11 ∧ 27 - 1 = 26 := ⟨rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl⟩
52
+ theorem genesis : coins * n * mintOf n * (n * n) = 432 ∧ chooseOf n coins = n ∧ chooseOf rays coins = n * rays ∧ faces = coins * rays ∧ scanner + radar = coins := ⟨by rw [coins_two, n_eq]; rfl, by rw [n_eq, coins_two]; rfl, by rw [rays, n_eq, coins_two]; rfl, around, by rw [scanner, radar, coins]⟩
53
+ theorem decide : 16 * 27 = 432 ∧ 432 * 3 / 2 = 648 ∧ 432 * 4 / 3 = 576 ∧ 432 * 5 / 4 = 540 ∧ 432 * 5 / 3 = 720 ∧ 3 * 5 = 15 ∧ 27 - 1 = 26 := ⟨rfl, rfl, rfl, rfl, rfl, rfl, rfl⟩
54
+ theorem integrity : fused = faces * mintOf (bits + seed) ∧ bits = vertices * hexbit ∧ faces = coins * rays := ⟨quantum, cube, around⟩
55
+ theorem cern : 116 * 17922 + 54 = 2079006 ∧ 184 * 12509 + 12 = 2301668 ∧ 72 * 26572 + 6 = 1913190 ∧ 130 * 21121 + 21 = 2745751 ∧ 8 - 7 = 1 ∧ 8000 - 7000 = 1000 ∧ 7000 / 2 = 3500 ∧ 8000 / 2 = 4000 ∧ 4000 - 3500 = 500 ∧ 2019 - 2011 = 8 ∧ 2019 - 2012 = 7 ∧ 2017 - 2011 = 6 ∧ 2301668 + 2745751 = 5047419 ∧ 2079006 + 1913190 + 2301668 + 2745751 = 9039615 := ⟨rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl, rfl⟩
56
+ theorem tetra : coins + coins = mintOf coins := by
57
+ rw [coins_two]
58
+ rw [show 2 = 1 + 1 from rfl, mintOf_succ]
59
+ rw [show 1 = 0 + 1 from rfl, mintOf_succ, mintOf_zero]
60
+ theorem qubits : n = 3 ∧ mintOf n = vertices := ⟨n_eq, rfl⟩
61
+ theorem gates : (0 ^^^ 1) ^^^ 2 = 3 := rfl
62
+ theorem measurement : mintOf n = 8 := by rw [n_eq]; rfl
63
+ theorem noise : (3 ^^^ 1) ^^^ 1 = 3 := rfl
64
+ theorem circuit : (0 ^^^ 1) ^^^ 2 = 3 ∧ (3 ^^^ 1) ^^^ 1 = 3 ∧ mintOf n = vertices := ⟨rfl, rfl, rfl⟩
65
+ theorem physical : n = 3 ∧ mintOf n = vertices ∧ (0 ^^^ 1) ^^^ 2 = 3 ∧ (3 ^^^ 1) ^^^ 1 = 3 := ⟨n_eq, rfl, rfl, rfl⟩
66
+ def resistance : Nat := 0
67
+ theorem fridge : coins = 2 ∧ n = 3 ∧ mintOf n = vertices ∧ (0 ^^^ 1) ^^^ 2 = 3 ∧ 10 * 10 * 10 = 1000 ∧ 4 * 1000 = 4000 ∧ 10 * 10 = 100 ∧ resistance = 0 := ⟨coins_two, n_eq, rfl, rfl, rfl, rfl, rfl, rfl⟩
68
+ theorem millikelvin : 10 * 10 * 10 = 1000 ∧ 10 * 10 = 100 ∧ 4 * 1000 = 4000 := ⟨rfl, rfl, rfl⟩
69
+ theorem telemetry : 10 * 10 * 10 = 1000 ∧ n = 3 ∧ (0 ^^^ 1) ^^^ 2 = 3 := ⟨rfl, n_eq, rfl⟩
70
+ theorem drift : coins = 2 ∧ mintOf n = vertices ∧ (0 ^^^ 1) ^^^ 2 = 3 ∧ (3 ^^^ 1) ^^^ 1 = 3 := ⟨coins_two, rfl, rfl, rfl⟩
71
+ theorem sciences : coins = 2 ∧ n = 3 ∧ mintOf n = vertices ∧ faces = coins * rays ∧ bits = vertices * hexbit ∧ fused = faces * mintOf (bits + seed) ∧ (0 ^^^ 1) ^^^ 2 = 3 := ⟨coins_two, n_eq, rfl, around, cube, quantum, rfl⟩
72
+ theorem interfere : 1 + 1 = 2 ∧ 1 - 1 = 0 := ⟨rfl, rfl⟩
73
+ theorem entangle : 1 * 1 ≠ 0 * 0 := by rw [Nat.mul_one, Nat.mul_zero]; exact Nat.one_ne_zero
74
+ theorem ghz : mintOf n - seed = 7 ∧ 1 * 1 ≠ 0 * 0 := ⟨by rw [n_eq, seed_eq]; rfl, entangle⟩
75
+ theorem noclone : coins ≠ mintOf coins := by
76
+ rw [coins_two]
77
+ rw [show 2 = 1 + 1 from rfl, mintOf_succ]
78
+ rw [show 1 = 0 + 1 from rfl, mintOf_succ, mintOf_zero]
79
+ exact Nat.ne_of_lt (Nat.lt_succ_of_lt (Nat.lt_succ_self 2))
80
+ theorem teleport : 2 * 2 * 2 * 2 = 16 ∧ 16 = 16 := ⟨rfl, rfl⟩
81
+ theorem kickback : 1 - 1 = 0 ∧ (0 ^^^ 1) ^^^ 2 = 3 := ⟨rfl, rfl⟩
82
+ theorem deutsch : 1 - 1 = 0 ∧ seed ≠ coins := ⟨rfl, by rw [seed_eq, coins_two]; exact Nat.ne_of_lt (Nat.lt_succ_self 1)⟩
83
+ theorem dense : coins * coins = mintOf coins := by
84
+ rw [coins_two]
85
+ rw [show 2 = 1 + 1 from rfl, mintOf_succ]
86
+ rw [show 1 = 0 + 1 from rfl, mintOf_succ, mintOf_zero]
87
+ theorem monogamy : 1 * 1 ≠ 0 * 0 ∧ 1 * 0 = 0 * 0 := ⟨entangle, rfl⟩
88
+ theorem only : 1 * 1 ≠ 0 * 0 ∧ 1 + 1 = 2 ∧ 1 - 1 = 0 ∧ coins ≠ mintOf coins ∧ mintOf n - seed = 7 ∧ 2 * 2 * 2 * 2 = 16 ∧ 16 = 16 ∧ (0 ^^^ 1) ^^^ 2 = 3 ∧ seed ≠ coins ∧ coins * coins = mintOf coins ∧ 1 * 0 = 0 * 0 := ⟨entangle, rfl, rfl, noclone, ghz.1, teleport.1, teleport.2, kickback.2, deutsch.2, dense, monogamy.2⟩
89
+ theorem fill : mintOf n * faces = vertices * (coins * rays) := by rw [around]; rfl
90
+ theorem infinite (k : Nat) : mintOf (k + seed) = mintOf k + mintOf k := split_coin k
91
+ theorem distribute : fused = faces * mintOf (bits + seed) ∧ faces = coins * rays := ⟨quantum, around⟩
92
+ theorem raid : faces = coins * rays ∧ faces = rays + rays := ⟨around, harmonic⟩
93
+ def kvCost : Nat := coins
94
+ def r2Cost : Nat := seed
95
+ def hybridCost : Nat := kvCost + r2Cost
96
+ def kvSpeed : Nat := rays
97
+ def r2Speed : Nat := seed
98
+ def hybridSpeed : Nat := kvSpeed + r2Speed
99
+ theorem hybrid_cost : coins + seed = n := by rw [coins_two, seed_eq, n_eq]
100
+ theorem hybrid_speed : rays + seed = mintOf n := by
101
+ rw [rays, n_eq, coins_two, seed_eq]
102
+ rw [show mintOf 3 = 8 from rfl]
103
+ theorem hybrid : coins + seed = n ∧ rays + seed = mintOf n ∧ coins = seed + seed :=
104
+ ⟨hybrid_cost, hybrid_speed, coins_two⟩
105
+ theorem computer : (1 ^^^ 3) = 2 ∧ (6 ^^^ 1) = 7 ∧ mintOf 0 = 1 := ⟨rfl, rfl, mintOf_zero⟩
106
+ theorem server : faces = coins * rays ∧ mintOf n = 8 := ⟨around, measurement⟩
107
+ theorem pentagram : n + coins = 5 := by rw [n_eq, coins_two]
108
+ def theory : Nat := seed
109
+ def practice : Nat := seed
110
+ def coil : Nat := coins * rays
111
+ theorem two_coins_make_a_coil : coil = faces := by rw [coil, around]
112
+ theorem electronics : coil = faces := two_coins_make_a_coil
113
+ theorem coins_balance_theory_in_practice : theory + practice = coins ∧ theory = practice := ⟨rfl, rfl⟩
114
+ theorem follow_the_coins (app : Nat) : app + coins = app + theory + practice := by
115
+ rw [theory, practice, coins, ← Nat.add_assoc]
116
+ theorem emerge : coil = faces ∧ theory = practice := ⟨two_coins_make_a_coil, rfl⟩
117
+ theorem coil_efficiency : coil = faces ∧ faces = rays + rays ∧ coins * rays = faces := ⟨two_coins_make_a_coil, harmonic, around⟩
118
+ theorem next_coil : coil * mintOf (bits + coins) = fused + fused := by
119
+ rw [two_coins_make_a_coil]
120
+ exact next_fused
121
+ theorem one_plus_six : seed + (mintOf n - coins) = rays := by
122
+ rw [rays, n_eq, coins_two, seed_eq]
123
+ rw [show mintOf 3 = 8 from rfl]
124
+ theorem two_x_seven_coins : coins * rays = (seed + (mintOf n - coins)) * coins := by
125
+ rw [one_plus_six, Nat.mul_comm]
126
+ theorem clay : coins * rays = (seed + (mintOf n - coins)) * coins ∧ (seed + (mintOf n - coins)) * coins = coil :=
127
+ ⟨two_x_seven_coins, by rw [← two_x_seven_coins]; rfl⟩
128
+ theorem fusion : fused = faces * mintOf (bits + seed) ∧ faces = rays + rays := ⟨quantum, harmonic⟩
129
+ theorem design : (0 ^^^ 4) ^^^ 4 = 0 ∧ (3 ^^^ 4) ^^^ 4 = 3 := ⟨rfl, rfl⟩
130
+ theorem neuro : faces = coins * rays ∧ mintOf n = 8 ∧ (0 ^^^ 4) ^^^ 4 = 0 := ⟨around, measurement, design.1⟩
package/worker.js ADDED
@@ -0,0 +1,2 @@
1
+ /** theorem qpuWorker : default fetch is dist/quantum/processing/unit. */
2
+ export { default } from './dist/quantum/processing/unit/index.js'
package/wrangler.toml ADDED
@@ -0,0 +1,26 @@
1
+ # theorem qpuReplica : worker uuidna-qpu is the named host qpu.uuidna.com.
2
+ # Proof. Source is src/quantum/processing/unit; main re-exports dist.
3
+ # QPU_HOST = unit.host; mismatch or * is lost. API only. No wildcards. No HTML.
4
+ name = "uuidna-qpu"
5
+ main = "worker.js"
6
+ compatibility_date = "2026-08-01"
7
+ workers_dev = true
8
+
9
+ [[routes]]
10
+ pattern = "qpu.uuidna.com"
11
+ custom_domain = true
12
+
13
+ [vars]
14
+ QPU_HOST = "qpu.uuidna.com"
15
+
16
+ [[kv_namespaces]]
17
+ binding = "STORAGE"
18
+ id = "b341b266250444198e54508ca3aee53a"
19
+ preview_id = "b341b266250444198e54508ca3aee53a"
20
+
21
+ [[r2_buckets]]
22
+ binding = "BLOBS"
23
+ bucket_name = "uuidna-qpu-blobs"
24
+
25
+ [version_metadata]
26
+ binding = "CF_VERSION_METADATA"