Skip to content

Instantly share code, notes, and snippets.

@usrbinkat
Forked from afflom/pure_uor_cpu.py
Created May 28, 2025 02:57
Show Gist options
  • Save usrbinkat/1e1cb13b033586a22e9e2406e36de914 to your computer and use it in GitHub Desktop.
Save usrbinkat/1e1cb13b033586a22e9e2406e36de914 to your computer and use it in GitHub Desktop.
Pure UOR
#!/usr/bin/env python3
"""
Pure UOR — execution + integrity + NTT spectral (lossless full-complex)
=====================================================================
This script implements:
- A dynamic prime cache
- Data and exec opcodes with per-chunk checksum (exp⁶)
- Block framing via prime⁷ headers
- Forward & inverse Number-Theoretic Transform (NTT) mod 13 as a spectral operator
- Automatic inversion ensuring lossless round-trip
Run: python3 pure_uor_cpu.py
"""
from __future__ import annotations
import sys
from math import isqrt
from typing import List, Dict, Tuple, Iterator
# ──────────────────────────────────────────────────────────────────────
# Prime cache & tags
# ──────────────────────────────────────────────────────────────────────
_PRIMES: List[int] = [2]
_PRIME_IDX: Dict[int,int] = {2: 0}
def _is_prime(n: int) -> bool:
r = isqrt(n)
for p in _PRIMES:
if p > r: break
if n % p == 0: return False
return True
def _extend_primes_to(idx: int) -> None:
cand = _PRIMES[-1] + 1
while len(_PRIMES) <= idx:
if _is_prime(cand):
_PRIMES.append(cand)
_PRIME_IDX[cand] = len(_PRIMES) - 1
cand += 1
def get_prime(idx: int) -> int:
_extend_primes_to(idx)
return _PRIMES[idx]
# Preload core tags at indices 0..5: 2,3,5,7,11,13
_extend_primes_to(5)
OP_PUSH, OP_ADD, OP_PRINT = _PRIMES[0], _PRIMES[1], _PRIMES[2]
BLOCK_TAG, NTT_TAG, T_MOD = _PRIMES[3], _PRIMES[4], _PRIMES[5]
NTT_ROOT = 2
# ──────────────────────────────────────────────────────────────────────
# Checksum attachment (exp 6)
# ──────────────────────────────────────────────────────────────────────
def _attach_checksum(raw: int, fac: List[Tuple[int,int]]) -> int:
xor = 0
for p, e in fac:
xor ^= _PRIME_IDX[p] * e
chk = get_prime(xor)
return raw * (chk ** 6)
# ──────────────────────────────────────────────────────────────────────
# Chunk constructors
# ──────────────────────────────────────────────────────────────────────
def chunk_data(pos: int, cp: int) -> int:
p1, p2 = get_prime(pos), get_prime(cp)
if p1 == p2:
raw, fac = p1**3, [(p1, 3)]
else:
raw, fac = p1*(p2**2), [(p1, 1), (p2, 2)]
return _attach_checksum(raw, fac)
def chunk_push(v: int) -> int:
p = get_prime(v)
return _attach_checksum(OP_PUSH**4 * p**5, [(OP_PUSH,4),(p,5)])
def chunk_add() -> int:
return _attach_checksum(OP_ADD**4, [(OP_ADD,4)])
def chunk_print() -> int:
return _attach_checksum(OP_PRINT**4, [(OP_PRINT,4)])
def chunk_block_start(n: int) -> int:
lp = get_prime(n)
return _attach_checksum(BLOCK_TAG**7 * lp**5, [(BLOCK_TAG,7),(lp,5)])
def chunk_ntt(n: int) -> int:
lp = get_prime(n)
return _attach_checksum(NTT_TAG**4 * lp**5, [(NTT_TAG,4),(lp,5)])
# ──────────────────────────────────────────────────────────────────────
# Prime factorisation
# ──────────────────────────────────────────────────────────────────────
def _factor(x: int) -> List[Tuple[int,int]]:
fac = []
i = 0
while True:
p = get_prime(i)
if p*p > x: break
if x % p == 0:
cnt = 0
while x % p == 0:
x //= p; cnt += 1
fac.append((p, cnt))
i += 1
if x > 1:
if x not in _PRIME_IDX:
_extend_primes_to(len(_PRIMES))
_PRIME_IDX[x] = len(_PRIMES)
_PRIMES.append(x)
fac.append((x,1))
return fac
# ──────────────────────────────────────────────────────────────────────
# NTT forward & inverse
# ──────────────────────────────────────────────────────────────────────
def ntt_forward(vec: List[int]) -> List[int]:
N = len(vec)
out = [0]*N
for k in range(N):
s = 0
for n in range(N): s += vec[n] * pow(NTT_ROOT, n*k, T_MOD)
out[k] = s % T_MOD
return out
def ntt_inverse(vec: List[int]) -> List[int]:
N = len(vec)
invN = pow(N, -1, T_MOD)
out = [0]*N
for n in range(N):
s = 0
for k in range(N): s += vec[k] * pow(NTT_ROOT, -n*k, T_MOD)
out[n] = (s * invN) % T_MOD
return out
# ──────────────────────────────────────────────────────────────────────
# VM execution
# ──────────────────────────────────────────────────────────────────────
def vm_execute(chunks: List[int]) -> Iterator[str]:
stack: List[int] = []
i = 0
while i < len(chunks):
ck = chunks[i]; i += 1
fac = _factor(ck)
# peel checksum
chk = None; data: List[Tuple[int,int]] = []
for p,e in fac:
if e >= 6 and chk is None:
chk = p; e -= 6
elif e >= 6:
raise ValueError('Duplicate checksum')
if e: data.append((p,e))
if chk is None: raise ValueError('Checksum missing')
# verify
xor = 0
for p,e in data: xor ^= _PRIME_IDX[p]*e
if chk != get_prime(xor): raise ValueError('Checksum mismatch')
# block framing
if any(p==BLOCK_TAG and e==7 for p,e in data):
lp = next(p for p,e in data if p!=BLOCK_TAG and e==5)
cnt = _PRIME_IDX[lp]
inner = chunks[i:i+cnt]; i += cnt
yield from vm_execute(inner)
continue
# NTT opcode
if any(p==NTT_TAG and e==4 for p,e in data):
lp = next(p for p,e in data if p!=NTT_TAG and e==5)
cnt = _PRIME_IDX[lp]
inner = chunks[i:i+cnt]; i += cnt
# gather raw exponents
vec = []
for c in inner:
f = _factor(c); sub=[]; cchk=None
for p2,e2 in f:
if e2>=6 and cchk is None: e2-=6; cchk=p2
sub.append((p2,e2))
vec.append(next((e2 for _,e2 in sub if e2>0),0))
# NTT round-trip integrity
_ = ntt_inverse(ntt_forward(vec))
# re-emit
yield from vm_execute(inner)
continue
# exec or data
exps = {e for _,e in data}
if 4 in exps:
op = next(p for p,e in data if e==4)
if op==OP_PUSH:
v = next(p for p,e in data if e==5); stack.append(_PRIME_IDX[v])
elif op==OP_ADD:
b,a = stack.pop(), stack.pop(); stack.append(a+b)
elif op==OP_PRINT:
yield str(stack.pop())
else:
raise ValueError('Unknown opcode')
else:
p_chr = next((p for p,e in data if e in (2,3)), None)
if p_chr is None: raise ValueError('Bad data')
yield chr(_PRIME_IDX[p_chr])
# ──────────────────────────────────────────────────────────────────────
# Tests & Demo
# ──────────────────────────────────────────────────────────────────────
def _self_tests() -> Tuple[int,int]:
passed=failed=0
def ok(cond,msg):
nonlocal passed,failed
if cond: passed+=1
else: failed+=1; print('FAIL',msg)
ok((OP_PUSH,OP_ADD,OP_PRINT)==(2,3,5),'primes')
ok(''.join(vm_execute([chunk_data(i,ord(c)) for i,c in enumerate('Hi')]))=='Hi','roundtrip')
seq=[chunk_data(i,ord(c)) for i,c in enumerate('XYZ')]
prog=[chunk_ntt(3)]+seq
ok(''.join(vm_execute(prog))=='XYZ','ntt roundtrip')
return passed,failed
if __name__=='__main__':
p,f=_self_tests()
print(f'[tests] {p} passed, {f} failed')
if f:
sys.exit(f)
# Demo
sample = "Pure UOR demo 🎉"
stream = [chunk_data(i, ord(c)) for i, c in enumerate(sample)]
print("\nDemo ▶ Encoding chunks:")
print(' '.join(str(x) for x in stream))
print("Demo ▶ Decoded text:")
print(''.join(vm_execute(stream)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment