From 7dd93dc61ed01b06199ea21e66036e960ba9c7aa Mon Sep 17 00:00:00 2001 From: Ali Romman <226877337+aliromman@users.noreply.github.com> Date: Fri, 23 Oct 2026 16:13:12 -0500 Subject: [PATCH 1/4] Retain exact source files for the owned transpose construction --- .../native-transpose-owned/source/NOTICE.md | 10 + .../source/cutoff/check_certificate.py | 244 +++++ .../source/cutoff/exact.py | 68 ++ .../source/cutoff/native.py | 193 ++++ .../source/cutoff/native_identity.py | 159 +++ .../source/owned/RESULT.json | 962 ++++++++++++++++++ .../source/owned/WITNESS.json | 435 ++++++++ .../source/owned/native.py | 345 +++++++ 8 files changed, 2416 insertions(+) create mode 100644 research/native-transpose-owned/source/NOTICE.md create mode 100644 research/native-transpose-owned/source/cutoff/check_certificate.py create mode 100644 research/native-transpose-owned/source/cutoff/exact.py create mode 100644 research/native-transpose-owned/source/cutoff/native.py create mode 100644 research/native-transpose-owned/source/cutoff/native_identity.py create mode 100644 research/native-transpose-owned/source/owned/RESULT.json create mode 100644 research/native-transpose-owned/source/owned/WITNESS.json create mode 100644 research/native-transpose-owned/source/owned/native.py diff --git a/research/native-transpose-owned/source/NOTICE.md b/research/native-transpose-owned/source/NOTICE.md new file mode 100644 index 0000000000..97dacf2cd0 --- /dev/null +++ b/research/native-transpose-owned/source/NOTICE.md @@ -0,0 +1,10 @@ +# Copied source files + +Apache-2.0. Preserve the source headers. No copied source file is modified. + +- `owned/native.py` and its unchanged `WITNESS.json`: Ali Romman's [PR5383 native construction](https://github.com/aliromman/integer-mult-bounds/blob/4bd6efa51a495a7c7b7754915cf0244e7e60969e/research/kappa-joint-relations-20261023/native.py). Only its pure construction, scalar allowance and exact row replay functions are called. The package's independent pins bind its source inputs. Its original notices credit Cao Yifan, Cinna Davis and zxv. +- `cutoff/exact.py`, `cutoff/native.py`, `cutoff/native_identity.py` and `cutoff/check_certificate.py`: Ali Romman's [PR5369 native tensor package](https://github.com/aliromman/integer-mult-bounds/tree/18354f41de4dc7bfda4692e814cf1d91a6d619ef/research/native-tensor-cutoff). The [complete proof and source credit](https://github.com/aliromman/integer-mult-bounds/blob/18354f41de4dc7bfda4692e814cf1d91a6d619ef/research/native-tensor-cutoff/PROOF.md) retain the native recipe lineage of Jose Manuel/jmbarrancoml, Douglas Colkitt and the listed contributors, plus the classical Fourier, binary Gram factorization, finite-group, Cook and Barrington results. This package uses the positive identity decision and the separately implemented certificate checker. It does not claim those results as new. + +The local `price.py` is an adapted version of the [PR5377 complete price engine](https://github.com/aliromman/integer-mult-bounds/blob/c448d13c71908647f968b06cddb795ce7d288139/research/kappa-owned-relation-20261023/price.py). Its notice credits Cao Yifan, Cinna Davis, zxv and Jacob Alan Sussman. The new census debits the eight owned helpers in all 18 full calls and includes every forward transpose wrapper. + +Substantial OpenAI Codex assistance was used in both source packages and in this contribution. Source links are fixed commits; SOURCES.json records each copied blob and byte hash. diff --git a/research/native-transpose-owned/source/cutoff/check_certificate.py b/research/native-transpose-owned/source/cutoff/check_certificate.py new file mode 100644 index 0000000000..929ccceeff --- /dev/null +++ b/research/native-transpose-owned/source/cutoff/check_certificate.py @@ -0,0 +1,244 @@ +"""Check certificates without importing the producer or its native algebra.""" +import argparse +import hashlib +import json +from pathlib import Path +import sys +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from exact import QI, need, scalar, unit + + +def dot(row, x): + return (row & x).bit_count() % 2 + + +def image(g, x): + return sum(dot(row, x) << i for i, row in enumerate(g[0])) ^ g[1] + + +def exponent(g, x): + return (g[2] + sum(g[3][i] for i in range(len(g[0])) if x & (1 << i)) + + 2 * sum(1 for i in range(len(g[0])) for j in range(i + 1, len(g[0])) + if x & (1 << i) and x & (1 << j) and g[4][i] & (1 << j))) % 4 + + +def invert_matrix(rows): + size = len(rows) + a, b = list(rows), [1 << i for i in range(size)] + for col in range(size): + choices = [i for i in range(col, size) if a[i] & (1 << col)] + need(bool(choices), 'checker: singular matrix') + i = choices[0] + a[col], a[i], b[col], b[i] = a[i], a[col], b[i], b[col] + for row in range(size): + if row != col and a[row] & (1 << col): + a[row] ^= a[col] + b[row] ^= b[col] + return tuple(b) + + +def normalize(data, n): + need(isinstance(data, dict) and set(data) == {'matrix_rows', 'offset', 'phase', 'linear_Z4', 'quadratic_rows'}, + 'checker: native fields') + a, p, q = data['matrix_rows'], data['linear_Z4'], data['quadratic_rows'] + need(all(isinstance(x, list) and len(x) == n for x in (a, p, q)), 'checker: native dimensions') + need(all(type(x) is int and 0 <= x < (1 << n) for x in a + q), 'checker: binary rows') + need(all(type(x) is int and 0 <= x < 4 for x in p), 'checker: linear phases') + need(type(data['offset']) is int and 0 <= data['offset'] < (1 << n), 'checker: offset') + need(type(data['phase']) is int and 0 <= data['phase'] < 4, 'checker: phase') + invert_matrix(a) + return (tuple(a), data['offset'], data['phase'], tuple(p), + tuple(q[i] & ~((1 << (i + 1)) - 1) for i in range(n))) + + +def problem_data(problem): + need(isinstance(problem, dict) and set(problem) == {'axes', 'roles', 'generators', 'program', 'reference'}, + 'checker: problem fields') + n, r = problem['axes'], problem['roles'] + need(type(n) is int and 1 <= n <= 256 and type(r) is int and 1 <= r <= 4096, + 'checker: dimensions') + need(isinstance(problem['generators'], dict), 'checker: generator table') + gs = {} + for name, value in problem['generators'].items(): + need(isinstance(name, str) and bool(name), 'checker: generator name') + gs[name] = normalize(value, n) + fields = {'add': {'op', 'src', 'dst', 'coefficient'}, + 'query': {'op', 'src', 'dst', 'coefficient', 'generator', 'inverse'}, + 'apply': {'op', 'dst', 'generator', 'inverse'}, + 'scale': {'op', 'dst', 'coefficient'}, 'swap': {'op', 'src', 'dst'}} + for code in (problem['program'], problem['reference']): + need(isinstance(code, list), 'checker: instruction list') + for ins in code: + need(isinstance(ins, dict), 'checker: instruction object') + op = ins.get('op') + need(isinstance(op, str) and op in fields and set(ins) <= fields[op], 'checker: instruction fields') + for key in (('src', 'dst') if op in ('add', 'query', 'swap') else ('dst',)): + need(type(ins.get(key)) is int and 0 <= ins[key] < r, 'checker: role') + if op in ('apply', 'query'): + need(isinstance(ins.get('generator'), str) and ins['generator'] in gs, 'checker: generator') + need(type(ins.get('inverse', False)) is bool, 'checker: inverse flag') + if 'coefficient' in ins: + scalar(ins['coefficient']) + return gs + + +def compose(g, h): + """Expand affine Boolean forms modulo four, without interpolation.""" + n = len(g[0]) + a = [] + for row in g[0]: + out = 0 + for j in range(n): + if row & (1 << j): + out ^= h[0][j] + a.append(out) + constant = h[2] + g[2] + linear = list(h[3]) + quad = [[2 * ((h[4][j] >> k) & 1) for k in range(n)] for j in range(n)] + bits = [[(row >> j) & 1 for j in range(n)] for row in h[0]] + shifts = [(h[1] >> i) & 1 for i in range(n)] + for i in range(n): + coefficient, t = g[3][i], shifts[i] + constant += coefficient * t + for j in range(n): + linear[j] += coefficient * (1 - 2 * t) * bits[i][j] + for k in range(j + 1, n): + quad[j][k] -= 2 * coefficient * bits[i][j] * bits[i][k] + for l in range(i + 1, n): + if not (g[4][i] >> l & 1): + continue + u = shifts[l] + constant += 2 * t * u + for j in range(n): + linear[j] += 2 * (t * bits[l][j] + u * bits[i][j] + bits[i][j] * bits[l][j]) + for k in range(j + 1, n): + quad[j][k] += 2 * (bits[i][j] * bits[l][k] + bits[i][k] * bits[l][j]) + return (tuple(a), image(g, h[1]), constant % 4, tuple(x % 4 for x in linear), + tuple(sum(((quad[j][k] % 4) // 2) << k for k in range(j + 1, n)) for j in range(n))) + + +def inverse(g): + n = len(g[0]) + rows = invert_matrix(g[0]) + offset = sum(dot(row, g[1]) << i for i, row in enumerate(rows)) + h = (rows, offset, 0, (0,) * n, (0,) * n) + phase = compose(g, h) + return (rows, offset, -phase[2] % 4, tuple(-x % 4 for x in phase[3]), phase[4]) + + +def accumulate(row, key, value): + if key in row: + value = value + row[key] + if value: + row[key] = value + elif key in row: + del row[key] + + +def algebra_endpoint(problem, code, generators, max_terms): + n, r = problem['axes'], problem['roles'] + need(type(max_terms) is int and max_terms >= r, 'checker: expanded-term limit; no decision') + identity = (tuple(1 << i for i in range(n)), 0, 0, (0,) * n, (0,) * n) + state = [{(i, identity): QI(1)} for i in range(r)] + for ins in code: + op, d = ins['op'], ins['dst'] + if op == 'swap': + s = ins['src'] + state[s], state[d] = state[d], state[s] + elif op == 'scale': + c = scalar(ins.get('coefficient', 1)) + state[d] = {k: c * v for k, v in state[d].items()} if c else {} + else: + s = d if op == 'apply' else ins['src'] + old = list(state[s].items()) + if op != 'add': + g = generators[ins['generator']] + if ins.get('inverse', False): + g = inverse(g) + old = [((i, compose(g, h)), c) for (i, h), c in old] + if op == 'apply': + state[d] = {} + c = scalar(ins.get('coefficient', 1)) + for key, value in old: + accumulate(state[d], key, c * value) + need(sum(len(row) for row in state) <= max_terms, 'checker: expanded-term limit; no decision') + return state + + +def literal_endpoint(problem, code, generators, input_role, points, max_terms): + """Run literal tensor basis actions. No group products or Gram factors are used.""" + state = [{} for _ in range(problem['roles'])] + state[input_role][tuple(points)] = QI(1) + for ins in code: + op, d = ins['op'], ins['dst'] + if op == 'swap': + s = ins['src'] + state[s], state[d] = state[d], state[s] + elif op == 'scale': + c = scalar(ins.get('coefficient', 1)) + state[d] = {k: c * v for k, v in state[d].items()} if c else {} + else: + s = d if op == 'apply' else ins['src'] + old = list(state[s].items()) + if op != 'add': + g = generators[ins['generator']] + if ins.get('inverse', False): + rows = invert_matrix(g[0]) + moved = [] + for xs, value in old: + ys = tuple(sum(dot(row, x ^ g[1]) << j for j, row in enumerate(rows)) for x in xs) + moved.append((ys, value * unit(-sum(exponent(g, y) for y in ys)))) + else: + moved = [(tuple(image(g, x) for x in xs), value * unit(sum(exponent(g, x) for x in xs))) + for xs, value in old] + old = moved + if op == 'apply': + state[d] = {} + c = scalar(ins.get('coefficient', 1)) + for xs, value in old: + accumulate(state[d], xs, c * value) + need(sum(map(len, state)) <= max_terms, 'checker: literal-term limit; no decision') + return state + + +def check(problem, certificate, max_terms=100000): + need(isinstance(certificate, dict), 'checker: certificate object') + need(type(max_terms) is int and max_terms >= 1, 'checker: positive term limit') + generators = problem_data(problem) + digest = hashlib.sha256(json.dumps(problem, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + need(certificate.get('schema') == 'native-tensor-cutoff/v1' and certificate.get('problem_sha256') == digest, + 'checker: certificate binding') + n, r = problem['axes'], problem['roles'] + need(certificate.get('axes') == n and certificate.get('roles') == r and + certificate.get('window') == [2 * n + 4, 2 * n + 7], 'checker: certificate dimensions') + if certificate.get('status') == 'IDENTITY_ALL_POSITIVE_WIDTHS': + a = algebra_endpoint(problem, problem['program'], generators, max_terms) + b = algebra_endpoint(problem, problem['reference'], generators, max_terms) + need(a == b and certificate.get('residual_terms') == 0, 'checker: complete native endpoints differ') + return 'PASS_NATIVE_IDENTITY_ALL_POSITIVE_WIDTHS' + need(certificate.get('status') == 'COUNTEREXAMPLE', 'checker: status') + xs, ys = certificate.get('input_points'), certificate.get('output_points') + need(isinstance(xs, list) and isinstance(ys, list) and len(xs) == len(ys) and + 2 * n + 4 <= len(xs) <= 2 * n + 7, 'checker: witness width') + need(all(type(x) is int and 0 <= x < 1 << n for x in xs + ys), 'checker: witness coordinates') + i, o = certificate.get('input_role'), certificate.get('output_role') + need(type(i) is int and 0 <= i < r and type(o) is int and 0 <= o < r, 'checker: witness roles') + a = literal_endpoint(problem, problem['program'], generators, i, xs, max_terms) + b = literal_endpoint(problem, problem['reference'], generators, i, xs, max_terms) + observed = a[o].get(tuple(ys), QI()) - b[o].get(tuple(ys), QI()) + need(bool(observed) and observed == scalar(certificate.get('discrepancy')), 'checker: witness discrepancy') + return 'PASS_NATIVE_TENSOR_COUNTEREXAMPLE' + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('problem', type=Path) + parser.add_argument('certificate', type=Path) + parser.add_argument('--max-terms', type=int, default=100000) + args = parser.parse_args() + need(args.max_terms >= 1, 'positive checker term limit') + print(check(json.loads(args.problem.read_text()), json.loads(args.certificate.read_text()), args.max_terms)) + + +if __name__ == '__main__': + main() diff --git a/research/native-transpose-owned/source/cutoff/exact.py b/research/native-transpose-owned/source/cutoff/exact.py new file mode 100644 index 0000000000..4f8514d1a2 --- /dev/null +++ b/research/native-transpose-owned/source/cutoff/exact.py @@ -0,0 +1,68 @@ +"""Exact Gaussian rational arithmetic shared by the two checkers.""" +from fractions import Fraction +import re + + +class QI: + __slots__ = ('real', 'imag') + + def __init__(self, real=0, imag=0): + if isinstance(real, QI): + self.real, self.imag = real.real, real.imag + else: + self.real, self.imag = Fraction(real), Fraction(imag) + + def __add__(self, other): + other = QI(other) + return QI(self.real + other.real, self.imag + other.imag) + + __radd__ = __add__ + + def __neg__(self): + return QI(-self.real, -self.imag) + + def __sub__(self, other): + return self + -QI(other) + + def __mul__(self, other): + other = QI(other) + return QI(self.real * other.real - self.imag * other.imag, + self.real * other.imag + self.imag * other.real) + + __rmul__ = __mul__ + + def __eq__(self, other): + if not isinstance(other, (QI, int, Fraction)): + return False + other = QI(other) + return self.real == other.real and self.imag == other.imag + + def __bool__(self): + return bool(self.real or self.imag) + + def json(self): + return [str(self.real), str(self.imag)] + + +def scalar(value): + """Accept integers, rational strings, or two such components. Reject floats.""" + def component(x): + if type(x) is int: + return Fraction(x) + if isinstance(x, str) and re.fullmatch(r'[+-]?[0-9]+(?:/[+-]?[0-9]+)?', x): + return Fraction(x) + raise ValueError('explicit integer or rational component required') + if type(value) is int or isinstance(value, str): + return QI(component(value)) + if isinstance(value, list) and len(value) == 2: + return QI(component(value[0]), component(value[1])) + raise ValueError('exact Gaussian coefficient required') + + +def unit(power): + return (QI(1), QI(0, 1), QI(-1), QI(0, -1))[power % 4] + + +def need(condition, message): + if not condition: + raise ValueError(message) diff --git a/research/native-transpose-owned/source/cutoff/native.py b/research/native-transpose-owned/source/cutoff/native.py new file mode 100644 index 0000000000..8872f540e1 --- /dev/null +++ b/research/native-transpose-owned/source/cutoff/native.py @@ -0,0 +1,193 @@ +"""Canonical affine maps with quadratic Gaussian phases.""" +from dataclasses import dataclass +from exact import need + + +def parity(x): + return x.bit_count() & 1 + + +def act(rows, x): + return sum(parity(row & x) << j for j, row in enumerate(rows)) + + +def inverse(rows): + n = len(rows) + work = [row | (1 << (n + i)) for i, row in enumerate(rows)] + for j in range(n): + p = next((k for k in range(j, n) if work[k] >> j & 1), None) + need(p is not None, 'invertible binary matrix required') + work[j], work[p] = work[p], work[j] + for k in range(n): + if k != j and work[k] >> j & 1: + work[k] ^= work[j] + return tuple(x >> n for x in work) + + +def matrix_product(left, right): + result = [] + for row in left: + value = 0 + for j, other in enumerate(right): + if row >> j & 1: + value ^= other + result.append(value) + return tuple(result) + + +@dataclass(frozen=True) +class Native: + rows: tuple + offset: int + phase: int + linear: tuple + quadratic: tuple + + @property + def n(self): + return len(self.rows) + + @classmethod + def identity(cls, n): + return cls(tuple(1 << j for j in range(n)), 0, 0, (0,) * n, (0,) * n) + + @classmethod + def parse(cls, data, n): + need(isinstance(data, dict), 'native recipe object required') + need(set(data) == {'matrix_rows', 'offset', 'phase', 'linear_Z4', 'quadratic_rows'}, + 'exact native recipe fields required') + rows, linear, quadratic = (data[k] for k in ('matrix_rows', 'linear_Z4', 'quadratic_rows')) + need(all(isinstance(x, list) and len(x) == n for x in (rows, linear, quadratic)), + 'native recipe dimension') + need(all(type(x) is int and 0 <= x < 1 << n for x in rows + quadratic), + 'binary row extent') + need(all(type(x) is int and 0 <= x < 4 for x in linear), 'linear phase extent') + need(type(data['offset']) is int and 0 <= data['offset'] < 1 << n, 'offset extent') + need(type(data['phase']) is int and 0 <= data['phase'] < 4, 'constant phase extent') + inverse(rows) + # The source convention ignores diagonal and lower quadratic entries. + quadratic = tuple(row & ~((1 << (j + 1)) - 1) for j, row in enumerate(quadratic)) + return cls(tuple(rows), data['offset'], data['phase'], tuple(linear), quadratic) + + def json(self): + return {'matrix_rows': list(self.rows), 'offset': self.offset, 'phase': self.phase, + 'linear_Z4': list(self.linear), 'quadratic_rows': list(self.quadratic)} + + def image(self, x): + return act(self.rows, x) ^ self.offset + + def exponent(self, x): + return (self.phase + sum(self.linear[i] for i in range(self.n) if x >> i & 1) + + 2 * sum(parity(self.quadratic[i] & x) for i in range(self.n) if x >> i & 1)) % 4 + + @classmethod + def from_function(cls, rows, offset, phase_function): + n = len(rows) + c = phase_function(0) % 4 + a = tuple((phase_function(1 << i) - c) % 4 for i in range(n)) + quadratic = [] + for i in range(n): + row = 0 + for j in range(i + 1, n): + delta = (phase_function((1 << i) | (1 << j)) - c - a[i] - a[j]) % 4 + need(delta in (0, 2), 'quadratic phase parity') + row |= (delta // 2) << j + quadratic.append(row) + return cls(tuple(rows), offset, c, a, tuple(quadratic)) + + def compose(self, right): + """Apply right first, then this map. Scalars stay outside this operation.""" + need(self.n == right.n, 'composition dimension') + return Native.from_function(matrix_product(self.rows, right.rows), + act(self.rows, right.offset) ^ self.offset, + lambda x: right.exponent(x) + self.exponent(right.image(x))) + + def inv(self): + rows = inverse(self.rows) + offset = act(rows, self.offset) + return Native.from_function(rows, offset, lambda x: -self.exponent(act(rows, x) ^ offset)) + + def phase_key(self): + return ((self.phase,) + self.linear + + tuple((self.quadratic[i] >> j) & 1 for i in range(self.n) for j in range(i + 1, self.n))) + + +def gram_factor(rows): + """Return at most n+1 columns whose binary outer products sum to rows.""" + n = len(rows) + need(all(0 <= r < 1 << n for r in rows), 'Gram row extent') + need(all(((rows[i] >> j) & 1) == ((rows[j] >> i) & 1) + for i in range(n) for j in range(n)), 'symmetric Gram matrix') + + def pair(x, y): + return parity(x & act(rows, y)) + + pending = [1 << i for i in range(n)] + singles, pairs = [], [] + while pending: + p = next((i for i, v in enumerate(pending) if pair(v, v)), None) + if p is not None: + v = pending.pop(p) + singles.append(v) + pending = [w ^ (v if pair(v, w) else 0) for w in pending] + continue + hit = next(((i, j) for i in range(len(pending)) for j in range(i + 1, len(pending)) + if pair(pending[i], pending[j])), None) + if hit is None: + break + i, j = hit + v, w = pending[i], pending[j] + pairs.append((v, w)) + pending = [u ^ (v if pair(u, w) else 0) ^ (w if pair(u, v) else 0) + for k, u in enumerate(pending) if k not in (i, j)] + + basis = singles + [v for pair_ in pairs for v in pair_] + pending + a, b = len(singles), len(pairs) + rank = a + 2 * b + width = rank + bool(b) + # Even-weight vectors in odd dimension have a nonsingular alternating form. + even = [(1 << i) | (1 << (2 * b)) for i in range(2 * b)] + hyperbolic = [] + while even: + v = even.pop(0) + j = next(j for j, w in enumerate(even) if parity(v & w)) + w = even.pop(j) + hyperbolic.extend((v, w)) + even = [u ^ (v if parity(u & w) else 0) ^ (w if parity(u & v) else 0) for u in even] + canonical = ([1 << i for i in range(a)] + [v << a for v in hyperbolic] + + [0] * len(pending)) + undo = inverse(basis) + vectors = [] + for row in undo: + value = 0 + for j in range(n): + if row >> j & 1: + value ^= canonical[j] + vectors.append(value) + return [sum(((vectors[i] >> j) & 1) << i for i in range(n)) for j in range(width)] + + +def character_tuple(n, character, floor=None): + """Realize one phase character on an affinely spanning tuple.""" + need(len(character) == 1 + n + n * (n - 1) // 2, 'phase character dimension') + need(all(type(x) is int and 0 <= x < 4 for x in character[:n + 1]) and + all(type(x) is int and x in (0, 1) for x in character[n + 1:]), 'phase character extent') + floor = 2 * n + 4 if floor is None else floor + need(type(floor) is int and floor >= 2 * n + 4, 'tensor window floor') + c, a = character[0], character[1:n + 1] + rows = [((a[i] & 1) ^ 1) << i for i in range(n)] + k = n + 1 + for i in range(n): + for j in range(i + 1, n): + rows[i] |= character[k] << j + rows[j] |= character[k] << i + k += 1 + points = [0] + [1 << i for i in range(n)] + gram_factor(rows) + counts = [sum((x >> i) & 1 for x in points) % 4 for i in range(n)] + need(all((a[i] - counts[i]) % 2 == 0 for i in range(n)), 'Gram parity invariant') + z = sum((((a[i] - counts[i]) % 4) // 2) << i for i in range(n)) + if z: + points.extend((z, z)) + f = floor + (c - floor) % 4 + need(len(points) <= f, 'proved tensor cutoff') + return points + [0] * (f - len(points)) diff --git a/research/native-transpose-owned/source/cutoff/native_identity.py b/research/native-transpose-owned/source/cutoff/native_identity.py new file mode 100644 index 0000000000..85376a935d --- /dev/null +++ b/research/native-transpose-owned/source/cutoff/native_identity.py @@ -0,0 +1,159 @@ +"""Decide complete dirty endpoints and produce a short native tensor witness.""" +import argparse +import hashlib +import json +from pathlib import Path +import sys +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from exact import QI, need, scalar, unit +from native import Native, character_tuple + + +def digest(problem): + return hashlib.sha256(json.dumps(problem, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + + +def validate(problem): + need(isinstance(problem, dict) and set(problem) == {'axes', 'roles', 'generators', 'program', 'reference'}, + 'exact problem fields required') + n, r = problem['axes'], problem['roles'] + need(type(n) is int and 1 <= n <= 256, 'axes must be in 1..256') + need(type(r) is int and 1 <= r <= 4096, 'roles must be in 1..4096') + need(isinstance(problem['generators'], dict), 'generator table required') + generators = {} + for name, data in problem['generators'].items(): + need(isinstance(name, str) and bool(name), 'generator name required') + generators[name] = Native.parse(data, n) + for program in (problem['program'], problem['reference']): + need(isinstance(program, list), 'instruction list required') + for instruction in program: + need(isinstance(instruction, dict), 'instruction object required') + op = instruction.get('op') + fields = {'add': {'op', 'src', 'dst', 'coefficient'}, + 'query': {'op', 'src', 'dst', 'coefficient', 'generator', 'inverse'}, + 'apply': {'op', 'dst', 'generator', 'inverse'}, + 'scale': {'op', 'dst', 'coefficient'}, + 'swap': {'op', 'src', 'dst'}} + need(isinstance(op, str) and op in fields and set(instruction) <= fields[op], 'instruction fields') + need('dst' in instruction, 'destination required') + if op in ('add', 'query', 'swap'): + need('src' in instruction, 'source required') + for key in ('src', 'dst'): + if key in instruction: + need(type(instruction[key]) is int and 0 <= instruction[key] < r, 'role index') + if op in ('query', 'apply'): + need(isinstance(instruction.get('generator'), str) and instruction['generator'] in generators, + 'known native generator required') + need(type(instruction.get('inverse', False)) is bool, 'inverse flag') + if 'coefficient' in instruction: + scalar(instruction['coefficient']) + return generators + + +def add_term(row, key, value): + new = row.get(key, QI()) + value + if new: + row[key] = new + else: + row.pop(key, None) + + +def endpoint(problem, instructions, generators, max_terms=100000): + need(type(max_terms) is int and max_terms >= problem['roles'], 'expanded-term limit exceeded; no decision') + identity = Native.identity(problem['axes']) + state = [{(i, identity): QI(1)} for i in range(problem['roles'])] + inverses = {} + peak = len(state) + for instruction in instructions: + op, d = instruction['op'], instruction['dst'] + if op == 'swap': + s = instruction['src'] + state[s], state[d] = state[d], state[s] + elif op == 'scale': + c = scalar(instruction.get('coefficient', 1)) + state[d] = {key: c * value for key, value in state[d].items()} if c else {} + else: + s = d if op == 'apply' else instruction['src'] + old = list(state[s].items()) + c = scalar(instruction.get('coefficient', 1)) + if op in ('apply', 'query'): + name = instruction['generator'] + g = generators[name] + if instruction.get('inverse', False): + if name not in inverses: + inverses[name] = g.inv() + g = inverses[name] + old = [((i, g.compose(h)), value) for (i, h), value in old] + if op == 'apply': + state[d] = {} + for key, value in old: + add_term(state[d], key, c * value) + size = sum(map(len, state)) + need(size <= max_terms, 'expanded-term limit exceeded; no decision') + peak = max(peak, size) + return state, peak + + +def choose_character(table, n): + """Choose a nonzero finite Fourier value without enumerating all characters.""" + moduli = [4] * (n + 1) + [2] * (n * (n - 1) // 2) + chosen = [] + for modulus in moduli: + for k in range(modulus): + reduced = {} + for key, coefficient in table.items(): + add_term(reduced, key[1:], coefficient * unit((4 // modulus) * k * key[0])) + if reduced: + table = reduced + chosen.append(k) + break + else: + raise ValueError('nonzero Fourier invariant failed') + need(set(table) == {()}, 'complete Fourier projection') + return chosen, table[()] + + +def decide(problem, max_terms=100000): + need(type(max_terms) is int and max_terms >= 1, 'positive expanded-term limit') + generators = validate(problem) + left, p = endpoint(problem, problem['program'], generators, max_terms) + right, q = endpoint(problem, problem['reference'], generators, max_terms) + residual = [] + for a, b in zip(left, right): + row = dict(a) + for key, value in b.items(): + add_term(row, key, -value) + residual.append(row) + n = problem['axes'] + result = {'schema': 'native-tensor-cutoff/v1', 'problem_sha256': digest(problem), + 'axes': n, 'roles': problem['roles'], 'window': [2 * n + 4, 2 * n + 7], + 'peak_expanded_terms': max(p, q), 'residual_terms': sum(map(len, residual))} + if not any(residual): + result['status'] = 'IDENTITY_ALL_POSITIVE_WIDTHS' + return result + o = next(i for i, row in enumerate(residual) if row) + source, g = next(iter(residual[o])) + table = {h.phase_key(): value for (i, h), value in residual[o].items() + if i == source and h.rows == g.rows and h.offset == g.offset} + character, amplitude = choose_character(table, n) + points = character_tuple(n, character) + result.update(status='COUNTEREXAMPLE', input_role=source, output_role=o, + input_points=points, output_points=[g.image(x) for x in points], + character=character, discrepancy=amplitude.json()) + return result + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('problem', type=Path) + parser.add_argument('--output', type=Path, required=True) + parser.add_argument('--max-terms', type=int, default=100000) + args = parser.parse_args() + need(args.max_terms >= 1, 'positive expanded-term limit') + result = decide(json.loads(args.problem.read_text()), args.max_terms) + args.output.write_text(json.dumps(result, indent=2) + '\n') + print(result['status']) + + +if __name__ == '__main__': + main() diff --git a/research/native-transpose-owned/source/owned/RESULT.json b/research/native-transpose-owned/source/owned/RESULT.json new file mode 100644 index 0000000000..e3c7e2dcfe --- /dev/null +++ b/research/native-transpose-owned/source/owned/RESULT.json @@ -0,0 +1,962 @@ +{ + "arithmetic": { + "PR5377_raw_root_upper": "75559684087/25000000000000", + "compiler": { + "H": 31385200000000, + "N": "2^31385200000000", + "eta": { + "lower": "0.000000199495867924466542600392", + "upper": "0.000000199495867924466542600393" + }, + "gap": "1/700000000", + "integer_test_exponent": 44836, + "logarithm_power": 1000, + "theta": "63/64", + "uniform_saving": "529667/175000000", + "word_materialized": false + }, + "fixed_profile_ceiling": { + "decreasing_through": "1/20", + "derivative_upper": { + "lower": "-195473.450610684184815935477074865515", + "upper": "-195473.450610684184815935477074865514" + }, + "remaining_interval_moment_upper": { + "lower": "-6820.155255095433991980526890420873", + "upper": "-6820.155255095433991980526890420872" + } + }, + "full_backward": 16, + "full_forward": 2, + "gain_over_PR4610": "24421/5000000000", + "gain_over_PR5377": "431/100000000", + "kappa": "151333/50000000", + "kappa_decimal": ".00302666", + "margin_at_previous_kappa": { + "lower": "1.209169472215494738857340795394", + "upper": "1.209169472215494738857340795395" + }, + "margin_at_previous_root_upper": { + "lower": "1.209152002019805295008574084544", + "upper": "1.209152002019805295008574084545" + }, + "negative_controls": { + "closed_epsilon": [ + "epsilon_below_one", + "global_gamma_power_slack", + "actual_logarithmic_gamma_guard", + "source_axis_superpolynomial", + "gaussian_above_main", + "new_semantic_guard_with_C1_one" + ], + "closed_uniform": [ + "new_complex_uniform_saving_above_b" + ], + "old_BIT": [ + "actual_bit_above_effective" + ], + "unearned_helper_credit": "Rejected by the independent complete census", + "unfunded_endpoint": [ + "main_transform_above_kappa", + "global_coordinate_router_above_kappa", + "fused_gaussian_above_kappa", + "group_bit_router_above_kappa", + "boundary_algebraic_matrix_above_kappa" + ] + }, + "nonrecursive": { + "additional_private_slots": 8, + "local_routes": 4834000, + "local_scalar": 158744, + "owned_slots_backward": 17, + "raw_budget": 1000000000, + "raw_scalar_upper": 181098496 + }, + "ordinary_BIT": { + "admitted": "17/5000", + "after_cover": "69/20000", + "atom": "1/250", + "before_cover": "3459/1000000", + "ordinary_saving": "8590884599/2500000000000", + "prime_rule": "odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses" + }, + "outer": { + "functional_checks": { + "actual_new_BIT_stock_sublinear": "174299999253/175000000000", + "fixed_halo_explicit_metadata_branch": "13475000001/175000000", + "new_BIT_row_stock_sublinear_in_active_group": "697899997009/700000000000", + "new_semantic_group_guard": "3/700000000" + }, + "margins": { + "boundary_algebraic_matrix": "296613239576267/98000000000000000", + "fused_gaussian": "296613238728801/98000000000000000", + "global_coordinate_router": "1059333/350000000", + "group_bit_router": "741533446822001/245000000000000000", + "group_scans": "349999999/350000000", + "main_transform": "296613099576267/98000000000000000", + "microbox_face_corrections": "13475000001/175000000", + "polynomial_products": "699999999/700000000", + "sparse_union_movement": "40109113239576267/98000000000000000" + }, + "parameters": { + "a": "1059333/350000000", + "b": "2118667/700000000", + "beta": "699999997/700000000", + "bit_saving": "17/5000", + "cap_xi": "89109113099576267/98000000000000000", + "complex_uniform_saving": "529667/175000000", + "d": "1/700000000", + "epsilon": "699999999/700000000", + "kappa": "151333/50000000", + "lambda_": "199394667/200000000", + "lambda_prime": "139576267/140000000", + "layout": "1/700000000", + "q": "423733/140000000", + "r0": "1/7000000000", + "stop": "1/700000000", + "tested_saving": "302667/100000000" + }, + "strict_checks": { + "actual_bit_above_effective": "130667/350000000", + "actual_logarithmic_gamma_guard": "1/700000000", + "actual_logarithmic_group_guard": "8890887110423733/49000000000000000", + "alpha_logarithm_absorption": "1/7000000000", + "boundary_algebraic_matrix_above_kappa": "559576267/98000000000000000", + "cap_above_band": "40109113099576267/98000000000000000", + "cap_below_cell": "8890886760423733/98000000000000000", + "cap_below_phase_cell_power": "106890886900423733/98000000000000000", + "complex_above_effective": "1/700000000", + "complex_below_one_over_32": "19756333/700000000", + "complex_endpoint": "1/350000000", + "epsilon_below_one": "1/700000000", + "epsilon_positive": "699999999/700000000", + "fine_prime_halo_umbrella": "7/2", + "fused_gaussian_above_kappa": "558728801/98000000000000000", + "gaussian_above_main": "69576267/49000000000000000", + "global_coordinate_router_above_kappa": "1/175000000", + "global_gamma_power_slack": "9/7000000000", + "group_below_dimension": "1/350000000", + "group_bit_router_above_kappa": "1746822001/245000000000000000", + "group_gauge_power_slack": "8890887103423733/49000000000000000", + "group_key_fits_record": "1/350000000", + "group_positive": "699999997/700000000", + "group_scans_above_kappa": "87235167/87500000", + "halo_covers_generic_inverse_radius": "5", + "improvement_over_user_baseline": "647844790400418148631/500000000000000000000000", + "lambda_above_internal": "1/1400000000", + "lambda_above_sigma": "3/1400000000", + "lambda_above_tau": "1/1400000000", + "lambda_prime_above_lambda": "1/1400000000", + "lambda_prime_above_leaf": "1397881333/490000000000000000", + "leaf_saving_above_effective": "697881333/490000000000000000", + "main_transform_above_kappa": "419576267/98000000000000000", + "membership_arithmetic_fits_record": "1/700000000", + "microbox_face_corrections_above_kappa": "26948940671/350000000", + "microbox_halo_volume": "55300000003/700000000", + "new_complex_uniform_saving_above_b": "1/700000000", + "new_semantic_guard_with_C1_one": "1/700000000", + "polynomial_products_above_kappa": "697881337/700000000", + "positive_layout_slack": "1/700000000", + "q_below_effective": "1/700000000", + "q_below_internal": "1/700000000", + "q_below_leaf": "1397881333/490000000000000000", + "q_positive": "423733/140000000", + "short_record_fallback": "697881333/700000000", + "source_axis_superpolynomial": "1/700000000", + "sparse_union_movement_above_kappa": "39812500559576267/98000000000000000", + "stop_below_one": "699999999/700000000", + "stop_positive": "1/700000000", + "strassen_integer_power_gap": "1951441519231", + "support_router_span": "3/700000000", + "theta_positive_polynomial_power": "2", + "union_header_fits_record": "3/700000000", + "union_tag_work_per_visit_fits_record": "3/700000000" + } + }, + "paid": { + "1": 41170, + "16": 448, + "2": 7416, + "24": 448, + "3": 9180, + "32": 448, + "4": 2286, + "40": 448, + "48": 448, + "5": 720, + "56": 448, + "64": 448, + "72": 224, + "8": 16 + }, + "paid_calls": 64148, + "productive_fields": 10800, + "query_shears": 15, + "rank_mass_surplus": 752, + "raw_headroom": [ + "1476807/100000000000000", + "184601/12500000000000" + ], + "raw_root_interval": [ + "302667476807/100000000000000", + "37833434601/12500000000000" + ], + "strictification": { + "alpha": { + "lower": "0.999999995016963387587258118166", + "upper": "0.999999995016963387587258118167" + }, + "cutoff": 20, + "delta": { + "lower": "0.951652473261883819699264316643", + "upper": "0.951652473261883819699264316644" + }, + "floor": 21, + "gamma": { + "lower": "0.956968564096059991841792406781", + "upper": "0.956968564096059991841792406782" + }, + "normalized_paid_upper": "2097152001953127/2097154147483648", + "power": 1024, + "reserve": "1/1000000000", + "tail_offset": "1/5", + "tested": "302667/100000000" + }, + "targets": { + "145": 224, + "17": 448, + "25": 448, + "33": 448, + "4": 504, + "41": 448, + "49": 448, + "57": 448, + "65": 448, + "7": 126, + "73": 224, + "8": 846, + "9": 5740 + } + }, + "candidate_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 318 + }, + "independent_owned_entry_columns": 17, + "independent_persistent_columns": 624, + "max_denominator": 64, + "max_formal_prefix_l1": "163", + "owned_outputs_zero": true, + "paid": { + "1": 2193, + "2": 412, + "3": 510, + "4": 127, + "5": 40 + }, + "real_scalar_allowance": 158744, + "zero_identities": 8 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "independent_source_identities": { + "checked": [ + [ + "center", + 11332 + ], + [ + "center", + 11358 + ], + [ + "center", + 11384 + ], + [ + "center", + 11410 + ], + [ + "center", + 11436 + ], + [ + "center", + 11462 + ], + [ + "center", + 11488 + ], + [ + "center", + 11514 + ], + [ + "zero", + 15584 + ], + [ + "zero", + 15870 + ], + [ + "zero", + 15876 + ], + [ + "zero", + 17245 + ], + [ + "zero", + 17256 + ], + [ + "zero", + 17264 + ], + [ + "zero", + 17580 + ], + [ + "zero", + 17722 + ] + ], + "owned_pivots": [ + 225, + 227, + 229, + 230, + 241, + 245, + 257, + 288 + ], + "reduced_basis": { + "225": { + "225": "1", + "384": "-1", + "388": "-1", + "390": "1", + "391": "1", + "392": "1", + "397": "-1" + }, + "227": { + "227": "1", + "231": "1", + "232": "-1", + "234": "1", + "235": "1", + "237": "1", + "238": "-1", + "239": "-1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "229": { + "229": "1", + "231": "-1", + "236": "-1", + "238": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "230": { + "230": "1", + "324": "-1", + "326": "1", + "328": "1", + "333": "-1" + }, + "241": { + "241": "1", + "243": "-1", + "253": "-1", + "255": "1", + "324": "1/2", + "326": "-1/2", + "328": "-1/2", + "333": "1/2" + }, + "245": { + "245": "1", + "247": "-1", + "252": "-1", + "254": "1", + "324": "-1/2", + "326": "1/2", + "328": "1/2", + "333": "-1/2" + }, + "257": { + "257": "1", + "259": "-1", + "261": "1", + "263": "-1", + "268": "-1", + "269": "-1", + "270": "1", + "271": "1" + }, + "288": { + "288": "1", + "294": "-1", + "296": "-1", + "297": "-1", + "300": "1", + "303": "1" + } + }, + "relation_rank": 8, + "snapshot_terms_before_substitution": { + "11205": 61, + "11218": 63, + "11231": 73, + "11244": 68, + "11257": 64, + "11270": 75, + "11283": 64, + "11306": 62 + }, + "source_event_indices_are_zero_based": true, + "witnesses": [ + { + "cached_event": 11205, + "cached_role": 92, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11332, + "frame": 254, + "relation": [ + [ + 230, + "1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "zero_event": 15584, + "zero_factor": "-1/4", + "zero_role": 92 + }, + { + "cached_event": 11218, + "cached_role": 57, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11358, + "frame": 274, + "relation": [ + [ + 225, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17264, + "zero_factor": "-1/4", + "zero_role": 57 + }, + { + "cached_event": 11231, + "cached_role": 81, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11384, + "frame": 619, + "relation": [ + [ + 225, + "1" + ], + [ + 227, + "-1" + ], + [ + 229, + "1" + ], + [ + 231, + "-2" + ], + [ + 232, + "1" + ], + [ + 234, + "-1" + ], + [ + 235, + "-1" + ], + [ + 236, + "-1" + ], + [ + 237, + "-1" + ], + [ + 238, + "2" + ], + [ + 239, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17256, + "zero_factor": "-1/4", + "zero_role": 81 + }, + { + "cached_event": 11244, + "cached_role": 224, + "copy_factor": "1", + "difference_factor": "-1/4", + "event": 11410, + "frame": 279, + "relation": [ + [ + 227, + "1" + ], + [ + 229, + "1" + ], + [ + 232, + "-1" + ], + [ + 234, + "1" + ], + [ + 235, + "1" + ], + [ + 236, + "-1" + ], + [ + 237, + "1" + ], + [ + 239, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "zero_event": 17722, + "zero_factor": "1/4", + "zero_role": 224 + }, + { + "cached_event": 11257, + "cached_role": 11, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11436, + "frame": 621, + "relation": [ + [ + 241, + "1" + ], + [ + 243, + "-1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "-1" + ], + [ + 254, + "1" + ], + [ + 255, + "1" + ] + ], + "zero_event": 15876, + "zero_factor": "-1/4", + "zero_role": 11 + }, + { + "cached_event": 11270, + "cached_role": 240, + "copy_factor": "1", + "difference_factor": "-1/4", + "event": 11462, + "frame": 280, + "relation": [ + [ + 225, + "1" + ], + [ + 241, + "-1" + ], + [ + 243, + "1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "1" + ], + [ + 254, + "1" + ], + [ + 255, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "zero_event": 17245, + "zero_factor": "1/4", + "zero_role": 240 + }, + { + "cached_event": 11283, + "cached_role": 9, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11488, + "frame": 624, + "relation": [ + [ + 257, + "1" + ], + [ + 259, + "-1" + ], + [ + 261, + "1" + ], + [ + 263, + "-1" + ], + [ + 268, + "-1" + ], + [ + 269, + "-1" + ], + [ + 270, + "1" + ], + [ + 271, + "1" + ] + ], + "zero_event": 15870, + "zero_factor": "-1/4", + "zero_role": 9 + }, + { + "cached_event": 11306, + "cached_role": 288, + "copy_factor": "1", + "difference_factor": "1/4", + "event": 11514, + "frame": 281, + "relation": [ + [ + 288, + "1" + ], + [ + 294, + "-1" + ], + [ + 296, + "-1" + ], + [ + 297, + "-1" + ], + [ + 300, + "1" + ], + [ + 303, + "1" + ] + ], + "zero_event": 17580, + "zero_factor": "-1/4", + "zero_role": 288 + } + ] + }, + "native_negative_controls": { + "missing_owned_input_clear": "Every independent main/helper endpoint: 0", + "uncleared_owned_output": "Every owned entry column is erased at return", + "under_or_overstated_paid_rank": "Exact paid rank and frame", + "wrong_copy_gauge": "Exact scalar destination frame", + "wrong_relation_sign": "Every independent main/helper endpoint: 0", + "wrong_snapshot_source": "Zero identity requires an identically zero full row", + "wrong_zero_input_frame": "Declared zero identity" + }, + "phase_inheritance": { + "absolute_phase_receipt_reused": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "all_retained_paid_events_and_warps_from_source": true, + "new_gaussian_operators": 0, + "new_native_maps": 0, + "new_operations": "Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.", + "source_amplitudes_and_phase_lowering_freshly_replayed": false + }, + "scope": "Exact finite word, full all-column endpoints, ownership, p16 bill and compiler arithmetic. Retains source native phase, allowed owned erasure, mixed-target all-size, analytic, precision, tape, prime and exact-recovery contracts. No selected-frontier update.", + "source_native": { + "backward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 64, + "max_formal_prefix_l1": "169", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158168, + "zero_identities": 0 + }, + "forward": { + "helpers": { + "4": 28, + "7": 7, + "8": 47, + "9": 326 + }, + "independent_owned_entry_columns": 1, + "independent_persistent_columns": 632, + "max_denominator": 32, + "max_formal_prefix_l1": "457", + "owned_outputs_zero": true, + "paid": { + "1": 2201, + "2": 412, + "3": 510, + "4": 127, + "5": 40, + "8": 8 + }, + "real_scalar_allowance": 158120, + "zero_identities": 0 + } + }, + "source_payload_sha256": "cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd", + "status": "PASS_CONDITIONAL_KAPPA_00302666_EIGHT_JOINT_RELATIONS", + "word_payload_sha256": "2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d" +} + diff --git a/research/native-transpose-owned/source/owned/WITNESS.json b/research/native-transpose-owned/source/owned/WITNESS.json new file mode 100644 index 0000000000..c2fd2e99d9 --- /dev/null +++ b/research/native-transpose-owned/source/owned/WITNESS.json @@ -0,0 +1,435 @@ +[ + { + "relation": [ + [ + 230, + "1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "event": 11332, + "frame": 254, + "cached_event": 11205, + "cached_role": 92, + "zero_event": 15584, + "zero_role": 92, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 225, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "event": 11358, + "frame": 274, + "cached_event": 11218, + "cached_role": 57, + "zero_event": 17264, + "zero_role": 57, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 225, + "1" + ], + [ + 227, + "-1" + ], + [ + 229, + "1" + ], + [ + 231, + "-2" + ], + [ + 232, + "1" + ], + [ + 234, + "-1" + ], + [ + 235, + "-1" + ], + [ + 236, + "-1" + ], + [ + 237, + "-1" + ], + [ + 238, + "2" + ], + [ + 239, + "1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "event": 11384, + "frame": 619, + "cached_event": 11231, + "cached_role": 81, + "zero_event": 17256, + "zero_role": 81, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 227, + "1" + ], + [ + 229, + "1" + ], + [ + 232, + "-1" + ], + [ + 234, + "1" + ], + [ + 235, + "1" + ], + [ + 236, + "-1" + ], + [ + 237, + "1" + ], + [ + 239, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ] + ], + "event": 11410, + "frame": 279, + "cached_event": 11244, + "cached_role": 224, + "zero_event": 17722, + "zero_role": 224, + "copy_factor": "1", + "difference_factor": "-1/4", + "zero_factor": "1/4" + }, + { + "relation": [ + [ + 241, + "1" + ], + [ + 243, + "-1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "-1" + ], + [ + 254, + "1" + ], + [ + 255, + "1" + ] + ], + "event": 11436, + "frame": 621, + "cached_event": 11257, + "cached_role": 11, + "zero_event": 15876, + "zero_role": 11, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 225, + "1" + ], + [ + 241, + "-1" + ], + [ + 243, + "1" + ], + [ + 245, + "1" + ], + [ + 247, + "-1" + ], + [ + 252, + "-1" + ], + [ + 253, + "1" + ], + [ + 254, + "1" + ], + [ + 255, + "-1" + ], + [ + 324, + "-1" + ], + [ + 326, + "1" + ], + [ + 328, + "1" + ], + [ + 333, + "-1" + ], + [ + 384, + "-1" + ], + [ + 388, + "-1" + ], + [ + 390, + "1" + ], + [ + 391, + "1" + ], + [ + 392, + "1" + ], + [ + 397, + "-1" + ] + ], + "event": 11462, + "frame": 280, + "cached_event": 11270, + "cached_role": 240, + "zero_event": 17245, + "zero_role": 240, + "copy_factor": "1", + "difference_factor": "-1/4", + "zero_factor": "1/4" + }, + { + "relation": [ + [ + 257, + "1" + ], + [ + 259, + "-1" + ], + [ + 261, + "1" + ], + [ + 263, + "-1" + ], + [ + 268, + "-1" + ], + [ + 269, + "-1" + ], + [ + 270, + "1" + ], + [ + 271, + "1" + ] + ], + "event": 11488, + "frame": 624, + "cached_event": 11283, + "cached_role": 9, + "zero_event": 15870, + "zero_role": 9, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + }, + { + "relation": [ + [ + 288, + "1" + ], + [ + 294, + "-1" + ], + [ + 296, + "-1" + ], + [ + 297, + "-1" + ], + [ + 300, + "1" + ], + [ + 303, + "1" + ] + ], + "event": 11514, + "frame": 281, + "cached_event": 11306, + "cached_role": 288, + "zero_event": 17580, + "zero_role": 288, + "copy_factor": "1", + "difference_factor": "1/4", + "zero_factor": "-1/4" + } +] + diff --git a/research/native-transpose-owned/source/owned/native.py b/research/native-transpose-owned/source/owned/native.py new file mode 100644 index 0000000000..c3d6a42e53 --- /dev/null +++ b/research/native-transpose-owned/source/owned/native.py @@ -0,0 +1,345 @@ +"""Eight prepared helpers remove sixteen paid jobs in the PR4610 backward word. + +Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0. +This extends Ali Romman's one-relation PR5377 at c448d13c71908647f968b06cddb795ce7d288139. +The source word is by Cao Yifan. The row convention and scalar allowance +follow the credited native work of Cinna Davis and zxv. +""" +from collections import Counter +from copy import deepcopy +from fractions import Fraction as Q +from hashlib import sha1, sha256 +from pathlib import Path +import gzip +import importlib.util +import json +import sys + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +SOURCE = 'research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz' +PHASE = 'research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz' +PAYLOAD = 'cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd' +WITNESSES = json.loads((HERE / 'WITNESS.json').read_text(encoding='utf-8')) +COUNT = 8 +OLD_PAID = {1: 2201, 2: 412, 3: 510, 4: 127, 5: 40, 8: 8} +NEW_PAID = dict(OLD_PAID) +NEW_PAID[1] -= COUNT +NEW_PAID.pop(8) +OLD_HELPERS = {4: 28, 7: 7, 8: 47, 9: 326} + + +def need(ok, why): + if not ok: + raise ValueError(why) + + +def read(path): + data = path.read_bytes() + return json.loads(gzip.decompress(data) if path.suffix == '.gz' else data) + + +def encode(x): + if isinstance(x, Q): + return str(x) + if isinstance(x, dict): + return {str(k): encode(v) for k, v in x.items()} + if isinstance(x, (list, tuple)): + return [encode(v) for v in x] + return x + + +def load(relative, name): + spec = importlib.util.spec_from_file_location(name, ROOT / relative) + module = importlib.util.module_from_spec(spec) + sys.modules[name] = module + spec.loader.exec_module(module) + return module + + +def authenticate(): + pins = read(HERE / 'SOURCES.json') + for row in pins['files']: + if row['usage'] != 'input': + continue + p = ROOT + for part in Path(row['path']).parts: + p /= part + need(not p.is_symlink(), 'No source aliases') + raw = p.read_bytes() + need(sha256(raw).hexdigest() == row['sha256'], 'Changed source: ' + row['path']) + need(sha1(b'blob ' + str(len(raw)).encode() + b'\0' + raw).hexdigest() == row['git_blob'], 'Source Git blob') + need(sha256(gzip.decompress((ROOT / SOURCE).read_bytes())).hexdigest() == PAYLOAD, 'Exact source payload') + return pins + + +def span(basis): + out = {0} + for vector in basis: + need(isinstance(vector, int) and 0 <= vector < 512, 'Binary frame coordinate') + out |= {v ^ vector for v in tuple(out)} + need(len(out) == 2 ** len(basis), 'Independent frame basis') + return out + + +def add(dst, src, q): + for k, v in tuple(src.items()): + value = dst.get(k, Q(0)) + q * v + if value: + dst[k] = value + else: + dst.pop(k, None) + + +def allowance(g): + if g[0] in ('clear', 'copy'): + return 2 + q = Q(*g[3:]) if g[0] == 'add' else Q(*g[2:]) + n, d = abs(q.numerator), q.denominator + need(n > 0 and d & (d - 1) == 0, 'Nonzero dyadic scalar') + if g[0] == 'scale': + need(n & (n - 1) == 0, 'Dyadic unit SCALE') + return 2 * (abs(n.bit_length() - d.bit_length()) + int(q < 0)) + need(g[0] == 'add', 'Known scalar operation') + return 2 * (3 + n.bit_length() - 1 + n.bit_count() + d.bit_length() - 1) + + +def relation_system(): + """Find exact independent pivots and eliminate all other pivot columns.""" + basis = {} + need(len(WITNESSES) == COUNT, 'Eight declared witnesses') + for witness in WITNESSES: + pairs = witness['relation'] + row = {h: Q(q) for h, q in pairs} + need(len(row) == len(pairs) and all(224 <= h < 632 and q for h, q in row.items()), 'Distinct helper coefficients') + for pivot, prior in sorted(basis.items()): + add(row, prior, -row.get(pivot, Q(0))) + need(row, 'Independent helper relations') + pivot = min(row); scale = row[pivot] + row = {h: q / scale for h, q in row.items()} + for prior in basis.values(): + add(prior, row, -prior.get(pivot, Q(0))) + basis[pivot] = row + need(len(basis) == COUNT, 'Eight paid helper outputs removed') + for pivot, row in basis.items(): + need(all(row.get(h, 0) == int(h == pivot) for h in basis), 'Reduced pivot columns') + return dict(sorted(basis.items())) + + +BASIS = relation_system() + + +def construct(source): + c = source['canonical']; old = source['programs']['backward'] + all_helpers = {h for x in WITNESSES for h, _ in x['relation']} + need(all(c['start'][h] == 0 and c['final'][h] == 1 for h in all_helpers), 'Every relation uses cold full-ended helpers') + snapshots, centers, zeros = {}, {}, {} + for slot, x in enumerate(WITNESSES, 1): + frame, role = x['frame'], x['cached_role'] + need(old[x['event']] == ['center', 0, 0, frame, 8], 'Exact source center') + event = old[x['cached_event']] + need(event[0] == 'climb' and event[2] == role and event[4] == frame, 'Exact snapshot source') + need(old[x['zero_event']] == ['climb', 'warp_retimed', x['zero_role'], frame, 1, 1], 'Exact zero source job') + need(x['cached_event'] < x['event'] < x['zero_event'] and Q(x['copy_factor']) == 1, 'Snapshot chronology and COPY coefficient') + snapshots[x['cached_event']] = (slot, x) + centers[x['event']] = (slot, x) + zeros[x['zero_event']] = x + need(len(snapshots) == len(centers) == len(zeros) == COUNT, 'Distinct replacement sites') + word = [] + for pivot, row in BASIS.items(): + word.append(['scalar', ['clear', ['L', pivot]], 0]) + for h, q in sorted(row.items()): + if h != pivot: + word.append(['scalar', ['add', ['L', pivot], ['L', h], -q.numerator, q.denominator], 0]) + for index, event in enumerate(old): + if index in centers: + slot, x = centers[index]; f = x['frame'] + word += [['scalar', ['clear', ['C', 0]], f], + ['scalar', ['copy', ['C', 0], ['C', slot]], f], + ['scalar', ['clear', ['C', slot]], f]] + elif index in zeros: + x = zeros[index] + word.append(['zero_retag', ['L', x['zero_role']], x['frame'], 1]) + else: + word.append(deepcopy(event)) + if index in snapshots: + slot, x = snapshots[index]; f = x['frame'] + word += [['scalar', ['clear', ['C', slot]], f], + ['scalar', ['copy', ['C', slot], ['L', x['cached_role']]], f]] + word += [['scalar', ['clear', ['L', h]], 1] for h in BASIS] + physical = deepcopy(c); physical.pop('local_profile') + return {'schema': 'joint-helper-relations-word/1', 'canonical': physical, + 'relation_basis': encode(BASIS), + 'paid_profiles': {'forward': OLD_PAID, 'backward': NEW_PAID}, + 'owned': {'forward': [['C', 0]], 'backward': [['C', i] for i in range(COUNT + 1)] + [['L', h] for h in BASIS]}, + 'programs': {'forward': deepcopy(source['programs']['forward']), 'backward': word}} + + +def replay(c, program, backward, specialized): + """Run every event on all independent entry columns and exact frames.""" + owned = {('C', 0)} | ({('C', i) for i in range(1, COUNT + 1)} | {('L', h) for h in BASIS} if specialized else set()) + roles = {('L', i) for i in range(632)} | owned + rows = {r: {(r, ()): Q(1)} for r in roles} + frames = {('L', i): f for i, f in enumerate(c['start'])} + frames.update({r: None for r in owned if r[0] == 'C'}) + spaces = [span(b) for b in c['frames']] + paid = Counter() + cost, max_l1, denominator, zero_count = 0, Q(1), 1, 0 + for e in program: + kind, touched = e[0], None + if kind == 'scalar': + g, frame = e[1:] + dst = tuple(g[1]); touched = dst + need(dst in rows and 0 <= frame < len(spaces), 'Declared scalar destination and frame') + cost += allowance(g) + if g[0] == 'clear': + need(dst in owned, 'Only owned fields can be erased') + rows[dst] = {}; frames[dst] = frame + else: + need(frames[dst] == frame, 'Exact scalar destination frame') + if g[0] in ('add', 'copy'): + src = tuple(g[2]) + need(src in rows and frames[src] == frame and dst != src, 'Exact scalar source frame') + if g[0] == 'copy': + need(dst in owned and not rows[dst], 'COPY into cleared owned storage') + rows[dst] = dict(rows[src]) + else: + add(rows[dst], rows[src], Q(g[3], g[4])) + else: + need(g[0] == 'scale', 'Known scalar operation') + rows[dst] = {k: Q(g[2], g[3]) * v for k, v in rows[dst].items()} + elif kind == 'warp': + _, role, op, old, new = e + dst = tuple(role); touched = dst + need(frames[dst] == old and 1 <= abs(op) <= len(c['warps']), 'Exact warp input') + symbol = (1 if op > 0 else -1) * (abs(op) + (10**6 if backward else 0)) + rows[dst] = {(r, w[1:] if w and w[0] == -symbol else (symbol,) + w): q + for (r, w), q in rows[dst].items()} + frames[dst] = new + elif kind in ('climb', 'center'): + if kind == 'climb': + _, _, i, old, new, rank = e + dst = ('L', i) + need(spaces[old] < spaces[new], 'Ascending paid climb') + else: + _, i, old, new, rank = e + dst = ('C', i) + need(spaces[old] < spaces[new] or spaces[new] < spaces[old], 'Nested paid center') + need(frames[dst] == old and rank == abs(len(c['frames'][new]) - len(c['frames'][old])), 'Exact paid rank and frame') + frames[dst] = new; paid[rank] += 1 + elif kind == 'zero_retag': + _, role, old, new = e + dst = tuple(role) + need(specialized and backward and any(dst == ('L', x['zero_role']) and (old, new) == (x['frame'], 1) for x in WITNESSES), 'Declared zero identity') + need(frames[dst] == old and not rows[dst], 'Zero identity requires an identically zero full row') + frames[dst] = new; zero_count += 1 + else: + need(kind in ('phase', 'adapter'), 'Known inert source marker') + if touched is not None: + max_l1 = max(max_l1, sum(map(abs, rows[touched].values()), Q(0))) + denominator = max(denominator, max((q.denominator for q in rows[touched].values()), default=1)) + need([frames['L', i] for i in range(632)] == c['final'], 'Every final native frame') + for i in range(632): + r = ('L', i) + if r in owned: + continue + expected = {(r, ()): Q(1)} + if i < 112 if backward else 112 <= i < 224: + expected[(('L', i + 112 if backward else i - 112), ())] = Q(-1 if backward else 1) + need(rows[r] == expected, 'Every independent main/helper endpoint: ' + str(i)) + need(all(not rows[r] for r in owned), 'Every owned entry column is erased at return') + need(zero_count == COUNT * int(specialized), 'All eight zero identities checked') + helpers = Counter() + for i in range(224, 632): + if ('L', i) in owned: + continue + a, b = c['start'][i], c['final'][i] + need(spaces[a] < spaces[b], 'Strict independent productive helper') + helpers[len(c['frames'][b]) - len(c['frames'][a])] += 1 + return {'paid': dict(sorted(paid.items())), 'helpers': dict(sorted(helpers.items())), + 'independent_persistent_columns': 632 - COUNT if specialized else 632, + 'independent_owned_entry_columns': len(owned), 'owned_outputs_zero': True, + 'real_scalar_allowance': cost, 'max_formal_prefix_l1': str(max_l1), + 'max_denominator': denominator, 'zero_identities': zero_count} + + +def independent_source_identities(source): + """Check unrestricted source identities with the predecessor row engine.""" + v = load('research/kappa-causal-continuation/buffer-borrowing/verify_buffers.py', 'joint_relation_source_rows') + rows = {('L', i): v.identity(('L', i)) for i in range(632)} + rows['C', 0] = v.identity(('C', 0)); saved = {}; checked = [] + for index, e in enumerate(source['programs']['backward']): + if e[0] == 'scalar': + g = e[1]; dst = tuple(g[1]) + if g[0] == 'clear': rows[dst] = {} + elif g[0] == 'copy': rows[dst] = dict(rows[tuple(g[2])]) + elif g[0] == 'scale': rows[dst] = {k: Q(g[2], g[3]) * a for k, a in rows[dst].items()} + else: v.add(rows[dst], rows[tuple(g[2])], Q(g[3], g[4])) + elif e[0] == 'warp': + dst = tuple(e[1]); rows[dst] = v.warp(rows[dst], e[2], True) + for x in WITNESSES: + delta = {(('L', h), ()): Q(q) for h, q in x['relation']} + if index == x['cached_event']: + saved[index] = dict(rows['L', x['cached_role']]) + if index == x['event']: + diff = dict(rows['C', 0]); v.add(diff, saved[x['cached_event']], -Q(x['copy_factor'])) + need(diff == {k: Q(x['difference_factor']) * q for k, q in delta.items()}, 'Independent exact center minus snapshot identity') + checked.append(('center', index)) + if index == x['zero_event']: + need(rows['L', x['zero_role']] == {k: Q(x['zero_factor']) * q for k, q in delta.items()}, 'Independent exact zero-site row identity') + checked.append(('zero', index)) + need(len(checked) == 2 * COUNT, 'Sixteen unrestricted source identities') + need(all(rows['L', i] == v.expected(('L', i), [], True, False) for i in range(632)), 'Independent unrestricted source endpoints') + return {'source_event_indices_are_zero_based': True, 'witnesses': WITNESSES, + 'relation_rank': COUNT, 'owned_pivots': list(BASIS), 'reduced_basis': BASIS, + 'snapshot_terms_before_substitution': {i: len(row) for i, row in saved.items()}, + 'checked': checked} + + +def phase_inheritance(source, candidate): + receipt = read(ROOT / PHASE) + need(receipt['status'] == 'PASS_JOINT_HELPER_MAPS_ALL_ACTUAL_ABSOLUTE_PHASES' and + receipt['actual_word_canonical_sha256'] == PAYLOAD, 'Authenticated source absolute-phase receipt') + physical = deepcopy(source['canonical']); physical.pop('local_profile') + need(candidate['canonical'] == physical, 'Every frame, native map and main adapter unchanged') + for direction, program in candidate['programs'].items(): + old = source['programs'][direction] + for kind in ('warp', 'adapter', 'phase'): + need([e for e in program if e[0] == kind] == [e for e in old if e[0] == kind], 'Exact inherited ' + kind + ' sequence') + old_paid = Counter(tuple(e) for e in old if e[0] in ('climb', 'center')) + new_paid = Counter(tuple(e) for e in program if e[0] in ('climb', 'center')) + expected = Counter() if direction == 'forward' else Counter(tuple(old[i]) for x in WITNESSES for i in (x['event'], x['zero_event'])) + need(old_paid - new_paid == expected and not new_paid - old_paid, 'Only the sixteen proved jobs are removed') + return {'new_gaussian_operators': 0, 'new_native_maps': 0, + 'all_retained_paid_events_and_warps_from_source': True, + 'absolute_phase_receipt_reused': PHASE, + 'source_amplitudes_and_phase_lowering_freshly_replayed': False, + 'new_operations': 'Same-frame COPY, owned CLEAR/ADD, and physical identity on a proved zero row.'} + + +def controls(c, candidate): + controls = {} + base = candidate['programs']['backward'] + variants = {} + bad = deepcopy(base); bad[1][1][3] *= -1; variants['wrong_relation_sign'] = bad + variants['missing_owned_input_clear'] = deepcopy(base[1:]) + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 1]])[1][2] = ['L', 63] + variants['wrong_snapshot_source'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'zero_retag')[2] = 0 + variants['wrong_zero_input_frame'] = bad + bad = deepcopy(base); next(e for e in bad if e[0] == 'climb')[5] += 1 + variants['under_or_overstated_paid_rank'] = bad + bad = deepcopy(base) + next(e for e in bad if e[0] == 'scalar' and e[1][:2] == ['copy', ['C', 0]])[2] = 0 + variants['wrong_copy_gauge'] = bad + variants['uncleared_owned_output'] = deepcopy(base[:-1]) + for name, program in variants.items(): + try: + replay(c, program, True, True) + except ValueError as err: + controls[name] = str(err) + else: + raise ValueError('Control accepted: ' + name) + return controls + From d31fca7b67b0441b093b54c2f36e349342386d22 Mon Sep 17 00:00:00 2001 From: Ali Romman <226877337+aliromman@users.noreply.github.com> Date: Fri, 23 Oct 2026 16:14:34 -0500 Subject: [PATCH 2/4] Transpose the owned supplier to raise conditional kappa to 0.00302725 --- .../NATIVE-CERTIFICATE.json | 1 + .../NATIVE-PROBLEM.json.gz | Bin 0 -> 67587 bytes .../native-transpose-owned/PHASES.json.gz | Bin 0 -> 88859 bytes research/native-transpose-owned/README.md | 273 ++++++++++++++++++ research/native-transpose-owned/RESULT.json | 1 + research/native-transpose-owned/SOURCES.json | 134 +++++++++ research/native-transpose-owned/TASK.json | 67 +++++ research/native-transpose-owned/VERIFY.json | 51 ++++ research/native-transpose-owned/WORD.json.gz | Bin 0 -> 179343 bytes research/native-transpose-owned/interface.py | 60 ++++ research/native-transpose-owned/phases.py | 103 +++++++ research/native-transpose-owned/price.py | 205 +++++++++++++ research/native-transpose-owned/support.py | 41 +++ research/native-transpose-owned/verify.py | 46 +++ research/native-transpose-owned/word.py | 144 +++++++++ 15 files changed, 1126 insertions(+) create mode 100644 research/native-transpose-owned/NATIVE-CERTIFICATE.json create mode 100644 research/native-transpose-owned/NATIVE-PROBLEM.json.gz create mode 100644 research/native-transpose-owned/PHASES.json.gz create mode 100644 research/native-transpose-owned/README.md create mode 100644 research/native-transpose-owned/RESULT.json create mode 100644 research/native-transpose-owned/SOURCES.json create mode 100644 research/native-transpose-owned/TASK.json create mode 100644 research/native-transpose-owned/VERIFY.json create mode 100644 research/native-transpose-owned/WORD.json.gz create mode 100644 research/native-transpose-owned/interface.py create mode 100644 research/native-transpose-owned/phases.py create mode 100644 research/native-transpose-owned/price.py create mode 100644 research/native-transpose-owned/support.py create mode 100644 research/native-transpose-owned/verify.py create mode 100644 research/native-transpose-owned/word.py diff --git a/research/native-transpose-owned/NATIVE-CERTIFICATE.json b/research/native-transpose-owned/NATIVE-CERTIFICATE.json new file mode 100644 index 0000000000..fedb291f72 --- /dev/null +++ b/research/native-transpose-owned/NATIVE-CERTIFICATE.json @@ -0,0 +1 @@ +{"axes":9,"peak_expanded_terms":24664,"problem_sha256":"a4c901e27b21dc7033ff8ace1217165eabb5e59ecd301dba321f76940db8be05","residual_terms":0,"roles":641,"schema":"native-tensor-cutoff/v1","status":"IDENTITY_ALL_POSITIVE_WIDTHS","window":[22,25]} diff --git a/research/native-transpose-owned/NATIVE-PROBLEM.json.gz b/research/native-transpose-owned/NATIVE-PROBLEM.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..f2137b4174838fcd1e791cad8a6840907f831f2b GIT binary patch literal 67587 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%0DXAS`%6o+`4xmQdG_6wsi7*nNGH1bO8 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

6#*Ko^6m=Ipw}_7Au6x`DFK>pi{Z|qnK;|% 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 a;a*ua)0*dDqaXO+|NTE}Exq2`Fb)97ohf|) literal 0 HcmV?d00001 diff --git a/research/native-transpose-owned/README.md b/research/native-transpose-owned/README.md new file mode 100644 index 0000000000..4e813ac49e --- /dev/null +++ b/research/native-transpose-owned/README.md @@ -0,0 +1,273 @@ +# Conditional kappa 0.00302725 by transposing an owned supplier + +This construction gives **conditional kappa = 12109/4000000 = 0.00302725**. +It improves the selected PR4610 value 0.0030217758 by 0.0000054742. It improves +the eight-relation PR5383 value 0.00302666 by 0.00000059. The paid profile changes; +the gain does not come from more digits of an unchanged root. +It also exceeds the later [PR #5387](https://github.com/CrocSwap/integer-mult-bounds/pull/5387) +compiler refinement, 0.003026674765, by 0.000000575235. That refinement is related +work; it is not a source dependency. + +The new result transfers a completed backward supplier to the forward +interface. It applies the classical transposition principle to the complete +linear circuit, including owned COPY and CLEAR operations. Exact monomial +corrections then restore the required forward map. Thus the two forward calls +can use the same reduced paid and helper profiles as the sixteen backward +calls. The construction also gives a reusable rule for later suppliers with +this interface and clean owned storage. + +[RESULT.json](RESULT.json) gives the complete evidence and bill. +[WORD.json.gz](WORD.json.gz) gives the emitted finite word and its boundary +corrections. [PHASES.json.gz](PHASES.json.gz) gives every transposed paid +operator recipe. [SOURCES.json](SOURCES.json) pins all consumed bytes. +The selected frontier is unchanged. + +## Exact source and separate scope + +The scientific base is canonical main +`1ec1119972c9aefe42525172d07b332fcff81cb4`, priority revision 7. +The source is Ali Romman's eight-relation +[PR #5383](https://github.com/CrocSwap/integer-mult-bounds/pull/5383), fixed at +`4bd6efa51a495a7c7b7754915cf0244e7e60969e`. Its published word, after canonical +JSON serialization with a final newline, has SHA256 +`2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d`. +The verifier reconstructs and checks that exact word before transposition. +It does not consume a later PR head or an unpublished helper relation. +The exact source files are retained in commit +`7dd93dc61ed01b06199ea21e66036e960ba9c7aa` in this branch. The live pins use +that ancestor; each `source_pin` retains the original PR source and hash. +A clean checkout does not need either pending PR commit in its object store. + +PR5383 prepares eight owned pivots from independent cold helpers. It removes +eight rank-eight centers and eight rank-one jobs, and debits eight rank-nine +productive targets. Its unchanged input is Cao Yifan's final +[PR #4610](https://github.com/CrocSwap/integer-mult-bounds/pull/4610) word, with +payload SHA256 +`cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd`. +This package retains that backward construction and changes only the forward +supplier and its full cost calculation. + +The [scoped claim](https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154367) +first tested the one-relation source. After PR5383 published and released its +eight-relation construction, this work pinned that stronger completed source. +No search or priority claim for the source relations is part of this result. Native map changes, +finite contact searches and no-snapshot relation screens that gave no gain +are not included in this PR. + +## 1. Transpose a complete linear circuit + +Let a source circuit act on independent fields x and owned fields z. Assume +that its complete map, with both x and z initially arbitrary, is + +```math +(x,z) \longmapsto (Bx,0). +``` + +In particular, every owned input column and output row is zero in the complete +matrix. Reverse the instruction order and transpose each instruction matrix. +The resulting circuit has complete map `(x,z) -> (B^T x,0)`. The transpose is +bilinear transpose over the complex numbers. It is not conjugate transpose. + +The emitted scalar rules are: + +| Source instruction | Transposed instruction | +| --- | --- | +| `d += c*s` | `s += c*d` | +| `d *= c` | `d *= c` | +| owned `CLEAR d` | owned `CLEAR d` | +| owned `COPY d <- s` | `s += d`, then owned `CLEAR d` | + +All coefficients stay unchanged. Every new CLEAR targets a field that was +already owned. The procedure uses the same physical slots. It does not invert +a CLEAR or assume that an erased value is available. A source COPY costs one +extra ADD under transposition; that cost is included below. + +A native monomial U has monomial transpose. If its action is +`U e_x = i^p(x) e_(Ax+t)`, its transpose sends `e_(Ax+t)` to `i^p(x) e_x`. +Its permutation is the inverse affine map, with the same entry phase at the +inverse address. The affine-quadratic grammar is closed under this operation. +Equivalently, `U^T = conjugate(U^-1)`. + +A standard Gaussian child C_r is symmetric. A source child with the exact +factorization `L C_r R` therefore transposes to `R^T C_r L^T`. Both new boundary +maps are native monomials. It has the same paid rank r, including its absolute +phase. This gives a direct finite lowering algorithm for every source child. +It does not require a new Gaussian supplier or a new assumption about general +Clifford identities. + +These identities hold at every positive tensor width f. Transposition commutes +with tensor powers, and scalar coefficients stay outside tensor powers. The +new native checker verifies the concrete monomial logical normalization by +its complete four-width criterion. The separate transposition argument and +Gaussian factorization establish the paid circuit statement. + +## 2. The zero-row frame marker requires no reverse zero assumption + +The source replaces eight paid jobs by physical identity. At each such job, +the data row is zero under the prepared helper relations. It records this with `zero_retag`. +The transpose of physical identity is identity. It is omitted from the emitted +physical word. The reverse data row need not be zero. + +For a second endpoint check, insert a distinct fresh free operator at each corresponding +reverse coordinate boundary. The exact rational replay cancels every term +that contains this operator at all returned fields. It checks all 641 entry +columns, including the seventeen owned fields. This is a proof in free operator +words, so it also holds for the actual nonmonomial frame quotient. The proof +symbol is not an emitted gate, an unpaid Gaussian call, or a presumed native +recipe. The complete matrix transposition theorem is the physical argument. + +The new forward artifact lists source indices for transposed paid operators +and source markers. A paid reference resolves through the exact source pair +and PHASES.json.gz. A native warp reverses its signed map and its frame pair. +Source entry and exit normalizers are transposed in reverse order, at whole +invocation boundaries. The inherited whole-job normalizer contract remains +explicit; no internal partial job is normalized for free. + +## 3. Restore the required forward interface + +Use the source controller's normalized complex local interfaces, stated in +`research/query-thinned-controllers/PROOF.md`. On each port, Q is the central +rank-one Gaussian and D is its commuting stage multiplier. Both are symmetric +in these coordinates and `Q^4=I`. For later stages D acts on eight fresh axes. +At stage zero it is the source nine-axis Gaussian times `Q^-1`; the same +symmetry and commutation statements hold. Spectator axes are unchanged. + +```math +F=\begin{pmatrix}D&0\\DQ^{-1}&D\end{pmatrix},\qquad +B=\begin{pmatrix}D&-DQ\\0&D\end{pmatrix},\qquad +J=\begin{pmatrix}Q^2&0\\0&-I\end{pmatrix}. +``` + +Direct multiplication gives `F = J B^T J`. Apply J before and after the +transposed normalized backward circuit. The Q squared operation is the exact +native translation, with no paid Gaussian job. The Y sign is scalar `-1` +on the complete field. It is not native phase two raised to tensor width f. +The verifier rejects that phase substitution with an all-width counterexample. + +The backward helper normalizer gives `conjugate(C_r)`. Transposition leaves it +unchanged because it is symmetric. Append `C_r^2`, the native translation on +its r active axes, to obtain C_r. Charge one such pass on every retained helper. +The word records all 400 helper ranks and translation offsets. These wrappers +restore the original forward main contract and the 400 independent productive +helper contracts. The eight pivot fields and C0 through C8 remain owned and return zero. + +This argument applies to any completed supplier with the same normalized B +interface, standard productive Gaussian helpers, native boundary maps and +clean owned storage. It does not classify other interfaces or justify a +source construction whose own endpoint or bill is incomplete. + +## 4. Complete bill and conditional exponent + +Both directions now have + +```text +paid: {1:2193, 2:412, 3:510, 4:127, 5:40} +helpers: {4:28, 7:7, 8:47, 9:318} +``` + +Relative to PR5383, the two forward calls remove sixteen H1 and sixteen H8 +paid jobs, and debit sixteen H9 productive targets. For every `00`. This adds 12.5 percent to the +source's sixteen-call moment gain. Relative to final PR4610, the full p16 +change is minus 144 H1, minus 144 H8 and minus 144 H9 targets. + +The full bill has **64,116 paid jobs and 10,784 productive fields**. The rank +surplus stays 752. Both main targets, all 15 query shears, all idle jobs and +both completion tails are included. Two independently assembled invoices and +two rational interval engines agree. + +The fixed-profile crossing lies in +**(0.00302728824993, 0.00302728824994)**. The claimed saving 0.00302725 leaves +more than 0.00000003824993 raw headroom. The tested saving is 0.00302726. +The exact completion uses power 1024, cutoff 20, floor 21, tail offset 1/5 +and reserve 1e-9. Both tail ratios are below 0.97. The finite compiler has +`H=31385200000000`, `N=2^H`, gap `1/700000000` and logarithm power 1000. +The exact integer threshold test passes. All 54 strict and four functional +outer predicates pass, with the retained ordinary BIT saving 0.0034. + +The forward scalar allowance is 159,320, including the sixteen transposed COPY +rules and both Y sign layers. The route allowance is 10,292,000. It includes +224 main native passes and 400 helper translation passes. It conservatively +doubles the source route allowance because COPY becomes ADD then CLEAR. +Eight additional physical private slots relative to PR4610 suffice, as in +PR5383. Each direction has seventeen owned fields, including eight old helper +slots. +The local allowance remains below 2*10^7 and the complete raw nonrecursive +allowance is **361,098,496 < 10^9**. The forward formal prefix L1 maximum is +442, below the original forward maximum 457. The denominator is at most 32, +equal to the original bound. + +## 5. Reproduce and assess the limits + +Use standard-library Python 3.12. From the repository root: + +```sh +python3 -B scripts/research_package.py --package research/native-transpose-owned +``` + +The normal and optimized commands must end with + +```text +PASS_CONDITIONAL_KAPPA_00302725_OWNED_TRANSPOSE +``` + +For a standalone replay, run: + +```sh +python3 -I -B research/native-transpose-owned/verify.py +``` The separate `--write` authoring +mode writes only this package's artifacts after all mathematical gates pass. +Normal verification compares every regenerated artifact with committed data. + +Checks cover the exact published source word, 641 independent/owned entry +columns, the arbitrary frame-bridge cancellation, the complete native +four-width certificate and its separate checker, all 2,847 transposed paid +phase classes, all 180 native warp classes on 92,160 literal columns, all 112 +Q-squared port phases, four productive helper ranks, the literal p16 +controller, the full cost calculation, completion, compiler and outer ledger. +Controls reject a wrong ADD transpose, missing owned cleanup, wrong native +inverse, wrong prepared relation, wrong absolute phase, omitted Q-squared +correction, scalar/tensor sign confusion, unearned helper credit and invalid +outer parameters. + +The complete bound retains the selected framework's native/all-column source, +owned erasure, whole-job normalizers, finite-template closure, precision and +fixed-tape, analytic decomposition, prime avoidance and exact recovery +assumptions. The source and new finite algebra/phase obligations are checked; +physical tape execution, numerical precision execution, ordinary BIT native +replay, Lean, Docker, analytic decomposition and integer recovery are not rerun. +The huge uniform compiled word is specified by a finite algorithm and is not +materialized. This is an author-checked conditional construction. It is not an +unconditional multiplication theorem, a practical speedup, independent human +acceptance or proof-kernel acceptance. + +## Credit + +Prepared by Ali Romman with substantial OpenAI Codex assistance; Apache-2.0. +Ali Romman's separate PR5377 and PR5383 contributions supply the owned +relations, actual saved values, zero-row replacements and backward word. The new +contribution is the transpose construction, its exact forward normalizer, +physical phase receipts and complete additional gain. No credit is claimed +for discovering the source relations. + +Cao Yifan / intqwq supplies final PR4610. Cinna Davis / 1337isnot1337 supplies +the PR4470 controller and native lineage. Dugongue supplies transported-frame +work; zxv supplies native, owned-cache and compiler interfaces; Jacob Alan +Sussman supplies mixed-target recursion. The source notices retain their +predecessors. The classical transposition principle is not new here. + +[PR #5369](https://github.com/CrocSwap/integer-mult-bounds/pull/5369), at +`18354f41de4dc7bfda4692e814cf1d91a6d619ef`, supplies the complete native tensor +criterion, producer and separate checker. The four code files are copied +without changes. Its native and classical mathematical attribution remains in +that linked proof. [source/NOTICE.md](source/NOTICE.md) gives the exact source +links and copied-file scope. The pricing code is adapted from the attributed +PR5377 engine, which retains Cao Yifan, Cinna Davis, zxv and Jacob Alan Sussman. + +## Open next questions + +Apply the construction to a stronger, published and independently verified +backward supplier. First check its complete normalized interface, owned +columns and productive targets. Then transpose the actual word and recompute +the complete bill. This package does not reserve or assess unpublished source +constructions. [TASK.json](TASK.json) records the scope and first gate. diff --git a/research/native-transpose-owned/RESULT.json b/research/native-transpose-owned/RESULT.json new file mode 100644 index 0000000000..32d9851bca --- /dev/null +++ b/research/native-transpose-owned/RESULT.json @@ -0,0 +1 @@ +{"arithmetic":{"PR5383_raw_root_upper":"37833434601/12500000000000","compiler":{"H":31385200000000,"N":"2^31385200000000","eta":{"lower":"0.000000198896818191972299783809","upper":"0.000000198896818191972299783810"},"gap":"1/700000000","integer_test_exponent":44836,"logarithm_power":1000,"theta":"63/64","uniform_saving":"2119081/700000000","word_materialized":false},"fixed_profile_ceiling":{"decreasing_through":"1/20","derivative_upper":{"lower":"-195429.853549519051730354837623051264","upper":"-195429.853549519051730354837623051263"},"remaining_interval_moment_upper":{"lower":"-6817.813214098317476830090331963946","upper":"-6817.813214098317476830090331963945"}},"full_backward":16,"full_forward":2,"gain_over_PR4610":"27371/5000000000","gain_over_PR5383":"59/100000000","kappa":"12109/4000000","kappa_decimal":".00302725","margin_at_PR5383_raw_root_upper":{"lower":"0.151387988317648054643094222493","upper":"0.151387988317648054643094222494"},"margin_at_previous_kappa":{"lower":"1.360313469048365037022624303111","upper":"1.360313469048365037022624303112"},"margin_at_previous_root_upper":{"lower":"1.360296002377893907536683455026","upper":"1.360296002377893907536683455027"},"negative_controls":{"closed_epsilon":["epsilon_below_one","global_gamma_power_slack","actual_logarithmic_gamma_guard","source_axis_superpolynomial","gaussian_above_main","new_semantic_guard_with_C1_one"],"closed_uniform":["new_complex_uniform_saving_above_b"],"old_BIT":["actual_bit_above_effective"],"unearned_helper_credit":"Rejected by the independent complete census","unfunded_endpoint":["main_transform_above_kappa","global_coordinate_router_above_kappa","fused_gaussian_above_kappa","group_bit_router_above_kappa","boundary_algebraic_matrix_above_kappa"]},"nonrecursive":{"additional_private_slots":8,"local_routes":10292000,"local_scalar":159320,"owned_slots_per_direction":17,"raw_budget":1000000000,"raw_scalar_upper":361098496},"ordinary_BIT":{"admitted":"17/5000","after_cover":"69/20000","atom":"1/250","before_cover":"3459/1000000","ordinary_saving":"8590884599/2500000000000","prime_rule":"odd q > 2^26*N^5 avoiding all fixed denominators and rank witnesses"},"outer":{"functional_checks":{"actual_new_BIT_stock_sublinear":"174299999253/175000000000","fixed_halo_explicit_metadata_branch":"13475000001/175000000","new_BIT_row_stock_sublinear_in_active_group":"697899997009/700000000000","new_semantic_group_guard":"3/700000000"},"margins":{"boundary_algebraic_matrix":"741677648940461/245000000000000000","fused_gaussian":"741677646821383/245000000000000000","global_coordinate_router":"2119079/700000000","group_bit_router":"1483355993642763/490000000000000000","group_scans":"349999999/350000000","main_transform":"741677298940461/245000000000000000","microbox_face_corrections":"13475000001/175000000","polynomial_products":"699999999/700000000","sparse_union_movement":"100272927648940461/245000000000000000"},"parameters":{"a":"2119079/700000000","b":"52977/17500000","beta":"699999997/700000000","bit_saving":"17/5000","cap_xi":"222772927298940461/245000000000000000","complex_uniform_saving":"2119081/700000000","d":"1/700000000","epsilon":"699999999/700000000","kappa":"12109/4000000","lambda_":"199394549/200000000","lambda_prime":"348940461/350000000","layout":"1/700000000","q":"1059539/350000000","r0":"1/7000000000","stop":"1/700000000","tested_saving":"151363/50000000"},"strict_checks":{"actual_bit_above_effective":"260921/700000000","actual_logarithmic_gamma_guard":"1/700000000","actual_logarithmic_group_guard":"22227073226059539/122500000000000000","alpha_logarithm_absorption":"1/7000000000","boundary_algebraic_matrix_above_kappa":"1398940461/245000000000000000","cap_above_band":"100272927298940461/245000000000000000","cap_below_cell":"22227072351059539/245000000000000000","cap_below_phase_cell_power":"267227072701059539/245000000000000000","complex_above_effective":"1/700000000","complex_below_one_over_32":"246949/8750000","complex_endpoint":"1/350000000","epsilon_below_one":"1/700000000","epsilon_positive":"699999999/700000000","fine_prime_halo_umbrella":"7/2","fused_gaussian_above_kappa":"1396821383/245000000000000000","gaussian_above_main":"173940461/122500000000000000","global_coordinate_router_above_kappa":"1/175000000","global_gamma_power_slack":"9/7000000000","group_below_dimension":"1/350000000","group_bit_router_above_kappa":"3493642763/490000000000000000","group_gauge_power_slack":"22227073208559539/122500000000000000","group_key_fits_record":"1/350000000","group_positive":"699999997/700000000","group_scans_above_kappa":"697880923/700000000","halo_covers_generic_inverse_radius":"5","improvement_over_user_baseline":"648139790400418148631/500000000000000000000000","lambda_above_internal":"1/1400000000","lambda_above_sigma":"3/1400000000","lambda_above_tau":"1/1400000000","lambda_prime_above_lambda":"1/1400000000","lambda_prime_above_leaf":"34947023/12250000000000000","leaf_saving_above_effective":"17447023/12250000000000000","main_transform_above_kappa":"1048940461/245000000000000000","membership_arithmetic_fits_record":"1/700000000","microbox_face_corrections_above_kappa":"53897880929/700000000","microbox_halo_volume":"55300000003/700000000","new_complex_uniform_saving_above_b":"1/700000000","new_semantic_guard_with_C1_one":"1/700000000","polynomial_products_above_kappa":"174470231/175000000","positive_layout_slack":"1/700000000","q_below_effective":"1/700000000","q_below_internal":"1/700000000","q_below_leaf":"34947023/12250000000000000","q_positive":"1059539/350000000","short_record_fallback":"17447023/17500000","source_axis_superpolynomial":"1/700000000","sparse_union_movement_above_kappa":"99531251398940461/245000000000000000","stop_below_one":"699999999/700000000","stop_positive":"1/700000000","strassen_integer_power_gap":"1951441519231","support_router_span":"3/700000000","theta_positive_polynomial_power":"2","union_header_fits_record":"3/700000000","union_tag_work_per_visit_fits_record":"3/700000000"}},"paid":{"1":41154,"16":448,"2":7416,"24":448,"3":9180,"32":448,"4":2286,"40":448,"48":448,"5":720,"56":448,"64":448,"72":224},"paid_calls":64116,"productive_fields":10784,"query_shears":15,"rank_mass_surplus":752,"raw_headroom":["3824993/100000000000000","1912497/50000000000000"],"raw_root_interval":["302728824993/100000000000000","151364412497/50000000000000"],"strictification":{"alpha":{"lower":"0.999999970464534591128115679621","upper":"0.999999970464534591128115679622"},"cutoff":20,"delta":{"lower":"0.950818834663934748568486126695","upper":"0.950818834663934748568486126696"},"floor":21,"gamma":{"lower":"0.957062946439347991413082521771","upper":"0.957062946439347991413082521772"},"normalized_paid_upper":"2097152001953127/2097154147483648","power":1024,"reserve":"1/1000000000","tail_offset":"1/5","tested":"151363/50000000"},"targets":{"145":224,"17":448,"25":448,"33":448,"4":504,"41":448,"49":448,"57":448,"65":448,"7":126,"73":224,"8":846,"9":5724}},"interface":{"D_exponent_is_formal":true,"Q_exponents_modulus":4,"copy_and_clear_checked":true,"identity":"F = J B^T J; J = diag(Q^2,-I)","missing_transpose_rejected":true,"scalar_coefficients_checked":5,"scalar_sign_counterexample":{"axes":9,"character":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"discrepancy":["2","0"],"input_points":[0,1,2,4,8,16,32,64,128,256,1,2,4,8,16,32,64,128,256,511,511,0,0,0],"input_role":0,"output_points":[0,1,2,4,8,16,32,64,128,256,1,2,4,8,16,32,64,128,256,511,511,0,0,0],"output_role":0,"peak_expanded_terms":1,"problem_sha256":"21a755f2a34d1a25e602dd888bb935c67dae506c5a2fd326d0178e554e5866bb","residual_terms":2,"roles":1,"schema":"native-tensor-cutoff/v1","status":"COUNTEREXAMPLE","window":[22,25]},"wrong_Q_correction_rejected":true},"native":{"controls":{"missing_owned_clear":"('Endpoint', 112, 3, {(112, ()): Fraction(1, 1), (0, ()): Fraction(-1, 1), (633, ()): Fraction(1, 4)})","wrong_native_transpose":"('Endpoint', 400, 12, {(411, ()): Fraction(-1, 2), (400, ()): Fraction(1, 2), (15, ()): Fraction(-1, 2), (410, ()): Fraction(1, 2), (406, ()): Fraction(-1, 2), (53, ()): Fraction(-","wrong_prepared_relation":"('Endpoint', 384, 151, {(384, ()): Fraction(1, 1), (388, ()): Fraction(-1, 1), (398, ()): Fraction(-1, 1), (253, ()): Fraction(1, 1), (239, ()): Fraction(1, 1), (81, ()): Fraction(","wrong_transposed_add":"('Endpoint', 382, 1, {(383, ()): Fraction(-1, 1)})"},"literal_word_sha256":"737caaf8ed380ec2bdac2452839c3fb8a3ddf68136a8f6fee8c4419cfccdc076","native":{"axes":9,"peak_expanded_terms":24664,"problem_sha256":"a4c901e27b21dc7033ff8ace1217165eabb5e59ecd301dba321f76940db8be05","residual_terms":0,"roles":641,"schema":"native-tensor-cutoff/v1","status":"IDENTITY_ALL_POSITIVE_WIDTHS","window":[22,25]},"native_sign_counterexample":{"axes":9,"character":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"discrepancy":["-1/2","0"],"input_points":[0,1,2,4,8,16,32,64,128,256,1,2,4,8,16,32,64,128,256,511,511,0,0,0],"input_role":411,"output_points":[0,1,2,4,8,16,32,64,128,256,1,2,4,8,16,32,64,128,256,511,511,0,0,0],"output_role":400,"peak_expanded_terms":24746,"problem_sha256":"e2134063e1fb9a6073200d9f298253829c96d767d46aa7a77d17ae0977ed450a","residual_terms":84,"roles":641,"schema":"native-tensor-cutoff/v1","status":"COUNTEREXAMPLE","window":[22,25]},"new_monomial_passes_bound":624,"paid":{"1":2193,"2":412,"3":510,"4":127,"5":40},"real_scalar_allowance":159320,"real_scalar_allowance_before_wrappers":158872,"source_counts":{"adapter":448,"climb":3282,"phase":10,"scalar":17563,"warp":240,"zero_retag":8},"source_replay":{"helpers":{"4":28,"7":7,"8":47,"9":318},"independent_owned_entry_columns":17,"independent_persistent_columns":624,"max_denominator":64,"max_formal_prefix_l1":"163","owned_outputs_zero":true,"paid":{"1":2193,"2":412,"3":510,"4":127,"5":40},"real_scalar_allowance":158744,"zero_identities":8},"source_word_sha256":"2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d","transpose":{"all_entry_columns":641,"ghost_terms_at_return":0,"max_denominator":32,"max_formal_prefix_l1":"442"}},"physical":{"Q_squared_ports":112,"literal_native_transpose_columns":92160,"native_warp_classes":180,"paid_classes":2847,"source_clifford_sha256":"2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962","symmetric_helper_ranks":[4,7,8,9],"wrong_absolute_phase_rejected":"Transposed paid absolute phase"},"status":"PASS_CONDITIONAL_KAPPA_00302725_OWNED_TRANSPOSE"} diff --git a/research/native-transpose-owned/SOURCES.json b/research/native-transpose-owned/SOURCES.json new file mode 100644 index 0000000000..7c9eb53907 --- /dev/null +++ b/research/native-transpose-owned/SOURCES.json @@ -0,0 +1,134 @@ +{ + "schema_version": 1, + "base_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "files": [ + { + "path": "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "usage": "input", + "git_blob": "46d929df83817b85a5387bcdb9745e0627d6366e", + "sha256": "7679daa4ec6a40f56fc7f0202379a6f454310e94945aba4f48beaaaafb838d05" + }, + { + "path": "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "usage": "input", + "git_blob": "ac77b78547d6dbf2e6bd102e1047c5b16c1bca88", + "sha256": "6eae66ed3cfa8a1533e89b9660a57276908e6646640a12f8b1e3489f4ea1354b" + }, + { + "path": "research/joint-helper-lattice/CONTROLLER.json", + "usage": "input", + "git_blob": "49a2f0675819f9deeea27ed77be2c2b6ff2e87e5", + "sha256": "1f5d6aa267e4e66048818714b5d3b5eae17a58abe91d15deeaa34574f7391a5f" + }, + { + "path": "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "usage": "input", + "git_blob": "0fdb65f946d557c13d8e2781b9151e2a8ddee5c3", + "sha256": "b4f720a7ccbb5b46e472eaf85dc8739a40598986f19b37d26c4f9ecfbd31f0de" + }, + { + "path": "research/higher-moment-strictification/verify.py", + "usage": "input", + "git_blob": "4b24a5096154736ce060474eb8c72dc64c303699", + "sha256": "0ce7e7137422d5ffeda22085c81fa88471bbe963100fdad62e659f1e3bf89326" + }, + { + "path": "research/kappa-rebuild/architecture/mixed_target_probe.py", + "usage": "input", + "git_blob": "4fc05ab08138218ba9f09e5c89b649afae7c914e", + "sha256": "011c3c9d0cf81103dc84d709a0e36793eb7c5ae3f23c85eac27650ef13afa04a" + }, + { + "path": "research/query-thinned-controllers/RESULT.json", + "usage": "input", + "git_blob": "e0695152c98d727edfd0d2034b58a1c7e8682c0c", + "sha256": "6ebfc8c0f09166f4834e9d7427410cb31aefff2cd4d4ce588c8e52c9c70e9a0f" + }, + { + "path": "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "usage": "input", + "git_blob": "340e1f0ffb8a1a9c38fbbd9119580b6d23e01b59", + "sha256": "d097e55f06c3f244f2074ffd7c1a0a5f3c4b4b6a6accf9619d1dde5c0ae85e15" + }, + { + "path": "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py", + "usage": "input", + "git_blob": "166841a037f069249f6f7f6dedb89248812f59e2", + "sha256": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962" + }, + { + "path": "research/native-transpose-owned/source/cutoff/native.py", + "usage": "input", + "git_blob": "8872f540e108010cdf6d143fa9d89729693a3ed6", + "sha256": "9e30aa82ce17e41d04db81f140475b6f782f274e017c2a32996bd71e4aa9c751", + "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/cutoff/native.py", + "source_pin": "head:18354f41de4dc7bfda4692e814cf1d91a6d619ef:research/native-tensor-cutoff/native.py" + }, + { + "path": "research/native-transpose-owned/source/cutoff/native_identity.py", + "usage": "input", + "git_blob": "85376a935d1e9b19202d773c78d09c9025e8a899", + "sha256": "3ca738030aedad5c173579f99254b88aa5edccd02e575945511679ef7b44d452", + "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/cutoff/native_identity.py", + "source_pin": "head:18354f41de4dc7bfda4692e814cf1d91a6d619ef:research/native-tensor-cutoff/native_identity.py" + }, + { + "path": "research/native-transpose-owned/source/cutoff/exact.py", + "usage": "input", + "git_blob": "4f8514d1a2ab211b46e820e030e2feda36a4882c", + "sha256": "6d918d23200b7603b620fbe0a3efefd5d05a20d0b99ad8bb9a43b8fcb9e39130", + "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/cutoff/exact.py", + "source_pin": "head:18354f41de4dc7bfda4692e814cf1d91a6d619ef:research/native-tensor-cutoff/exact.py" + }, + { + "path": "research/native-transpose-owned/source/cutoff/check_certificate.py", + "usage": "input", + "git_blob": "929ccceeff54218a6b834a838ffb05c18aff4aad", + "sha256": "a6d73b8cefb3c26e39661e6d6eedabfe2c15df123695ba19386daa11d93142aa", + "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/cutoff/check_certificate.py", + "source_pin": "head:18354f41de4dc7bfda4692e814cf1d91a6d619ef:research/native-tensor-cutoff/check_certificate.py" + }, + { + "path": "research/native-transpose-owned/source/owned/native.py", + "usage": "input", + "git_blob": "c3d6a42e5358cd8c91dc8c975c61615ef9df592c", + "sha256": "35d3eaab351a1e6bdc62ab62d6a9669e1224abaaa7a0f9c694509b5c8d020382", + "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/owned/native.py", + "source_pin": "head:4bd6efa51a495a7c7b7754915cf0244e7e60969e:research/kappa-joint-relations-20261023/native.py" + }, + { + "path": "research/native-transpose-owned/source/owned/WITNESS.json", + "usage": "input", + "git_blob": "c2fd2e99d9efa5fb984269aac2120be48fb4febd", + "sha256": "9dba23f294e3c78de56f922c5726942aa740b6f41566488c2d6a158a01d90a07", + "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/owned/WITNESS.json", + "source_pin": "head:4bd6efa51a495a7c7b7754915cf0244e7e60969e:research/kappa-joint-relations-20261023/WITNESS.json" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602", + "sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72" + }, + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b288ae44032fd84dd5564243422836cbcd29835e", + "sha256": "f9ed52bb642cd1e1486cf2743557ac5fa23cf1514a3277d786a644e39a565038" + }, + { + "path": "research/query-thinned-controllers/PROOF.md", + "usage": "provenance", + "git_blob": "9068f429896112082664455ab00bab083c99d1d8", + "sha256": "5ade59641f2ed70d045d6f60e89db7d979b1d1e9967f3acbe5c56eac81312841" + }, + { + "path": "research/native-transpose-owned/source/owned/RESULT.json", + "usage": "input", + "git_blob": "e3c7e2dcfe8f98f7972dbd0e0d2d86bd203e9895", + "sha256": "34df5132f0c66ecae8b2deb793d5012841966f99864ef855234eb81b0271d620", + "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/owned/RESULT.json", + "source_pin": "head:4bd6efa51a495a7c7b7754915cf0244e7e60969e:research/kappa-joint-relations-20261023/RESULT.json" + } + ] +} diff --git a/research/native-transpose-owned/TASK.json b/research/native-transpose-owned/TASK.json new file mode 100644 index 0000000000..c400de8086 --- /dev/null +++ b/research/native-transpose-owned/TASK.json @@ -0,0 +1,67 @@ +{ + "schema_version": 1, + "task_id": "complex-new-helper-inventory", + "priority_revision": 7, + "base_commit": "1ec1119972c9aefe42525172d07b332fcff81cb4", + "original_card": { + "id": "complex-new-helper-inventory", + "question": "Can a new local cost interface change the deficit-to-recursive-cost ratio beyond current packing?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/heterogeneous-owner-assembly/README.md", + "certificates/selected-result.json", + "research/selected-k8-unrestricted-ends/README.md" + ], + "methods": [ + "Propose a changed helper inventory and derive an optimistic exact moment.", + "Design a small completed instance and independently verify its endpoint and rank bill." + ], + "acceptance_gate": "A new physically realizable contract outside the frozen catalogue whose per-call profile, screened with ceiling.ceiling(), beats the selected word's packing ceiling; a lower cap does not establish identical circuitry or order attainable optima, and is insufficient to pass the stronger-budget target under this model. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Before any synthesis, write the candidate per-call local profile (and centre charge / unpaid coordinates if changed) and screen it with ceiling.ceiling(); reject it if even the ideal ceiling does not beat the selected word's by your stated margin.", + "bottleneck_link": "Packing of the selected word is capped at +0.87% (ceiling model); only a lower local excess spend or a changed coverage law raises the cap.", + "allowed_variations": [ + "Narrow to one changed boundary or helper type with explicit counts.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Mixing only providers already inside the pinned catalogue.", + "Only changing helper terminal subspaces and monotone frames within the fixed scalar word, entrances and cleanup contract already covered by #1995/#2013.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "helper inventory", + "heterogeneous-owner", + "mutable leaver" + ] + }, + "scope_status": "changed", + "actual_scope": "Transpose the fixed PR5383 owned backward circuit into a forward supplier with the same reduced bill; prove its native phases, complete endpoint and kappa 0.00302725.", + "scope_change_reason": "The donor requested a meaningful complete improvement from the native theorem. The new work transports an existing owned construction between orientations. It does not search the separately claimed eight-center system; it consumes the released source.", + "bottleneck_link": "The p16 controller still pays for two unreduced forward calls. Native transposition removes their extra eight H1 and eight H8 jobs while debiting their eight H9 helpers.", + "budget_minutes": 180, + "stop_rule": "Publish only after exact complete native, physical phase, completion, compiler and outer gates pass. The donor requested continued work until a verified improvement.", + "outcome": "completed", + "evidence": "641-column transpose and native checks, 2847 paid phase classes, 180 native warp classes, complete p16 census and exact outer admission.", + "author": "Ali Romman", + "ai_assistance": "Substantial OpenAI Codex assistance. No subagents, independent human review or proof-kernel acceptance.", + "claim": "https://github.com/CrocSwap/integer-mult-bounds/discussions/5125#discussioncomment-19154367", + "open_questions": [ + { + "question": "Apply the transposition construction to a new, independently verified backward supplier.", + "why_it_matters": "Every later backward-only saving can also reduce the two forward bills if its complete interface and owned fields satisfy this theorem.", + "first_step": "Pin the published complete backward word and verify its normalized interface before transposition.", + "blocked_by": "A stronger source word needs its own admission and complete pricing. No claim is made about unpublished sources." + } + ] +} diff --git a/research/native-transpose-owned/VERIFY.json b/research/native-transpose-owned/VERIFY.json new file mode 100644 index 0000000000..3711f7a1ef --- /dev/null +++ b/research/native-transpose-owned/VERIFY.json @@ -0,0 +1,51 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz", + "research/kappa-round3-warp-20261022/PHASE-VALIDATION.json.gz", + "research/joint-helper-lattice/CONTROLLER.json", + "research/kappa-round6-compiler-tightening-20261022/ARITHMETIC.json", + "research/higher-moment-strictification/verify.py", + "research/kappa-rebuild/architecture/mixed_target_probe.py", + "research/query-thinned-controllers/RESULT.json", + "research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py", + "research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py", + "research/native-transpose-owned/source/cutoff/native.py", + "research/native-transpose-owned/source/cutoff/native_identity.py", + "research/native-transpose-owned/source/cutoff/exact.py", + "research/native-transpose-owned/source/cutoff/check_certificate.py", + "research/native-transpose-owned/source/owned/native.py", + "research/native-transpose-owned/source/owned/WITNESS.json", + "research/native-transpose-owned/source/owned/RESULT.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-W", + "error", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 550, + "checks": "Complete owned transpose, separate native checker, all physical phase classes and full compiler/outer arithmetic." + }, + { + "argv": [ + "{python}", + "-I", + "-W", + "error", + "-O", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 550, + "checks": "Complete owned transpose, separate native checker, all physical phase classes and full compiler/outer arithmetic." + } + ] +} diff --git a/research/native-transpose-owned/WORD.json.gz b/research/native-transpose-owned/WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..0e7e5a84ad5b8bfdaf1f001ed591c79876009db2 GIT binary patch literal 179343 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ⅅh}of9l>(%^jlqEAC~WA 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

JM@A%`h+mC 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�W!57Fu}r0poq{0979I9|Qfo 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

s} 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℘CMzvg5=Y=ujO z9KE$V4}!l4*8jC#bfhx2*LUy+;eUI74}M^;Jhmr>coVk@k?tJ(!9tK)tZd{|*;o~j z7O>iBZuAZ2UD_sXy-ok(R&3xcy+f7XI|~=VmauiYyw7{DXIA%^2+E!n_D?Dy0+j?w zxb^LT{jVG4R_EUry(~lAA4;bF(C$1v+cv;hU9_^cpN>bFl}Y7%U2L#Q+_XLqwmfew z{ynhvXmz{w#nI%0sMJn@?uE{;8zWlgFHF8duU&*3opj8MEEHM44LL%6Uf9?P?<}5@ zwz5eLO?;zwMB(gvWT|?4qVjlmytT9a;(WcdvorK;wbFgsx`o*G=9f|D#o@kDXIsz( zfuMS^8#>)_H0W2^dGU3x=~vGA`LEBE9Y@w19Vdflw#%DyCw{7@yF26KTir%EP3KA# zuXwU^My{@m5_~oni+u^erHO(7(Jamxp}s}pghGp9jcHh&=JI=y7o2hl6%Lr k``U>Dv2yz7X-J5`ApCLY&Titx_65mQ3!yl-l$Yec0G+SQ!2kdN literal 0 HcmV?d00001 diff --git a/research/native-transpose-owned/interface.py b/research/native-transpose-owned/interface.py new file mode 100644 index 0000000000..77596f3122 --- /dev/null +++ b/research/native-transpose-owned/interface.py @@ -0,0 +1,60 @@ +"""Check the complete local interface and scalar transposition rules. + +The normalized interfaces are retained from query-thinned-controllers. +The scalar transpose is classical. Apache-2.0; OpenAI Codex assistance. +""" +from fractions import Fraction as Q +from support import need + +def add(a,b): + out=dict(a) + for k,v in b.items(): + out[k]=out.get(k,0)+v + if not out[k]:del out[k] + return out + +def mul(a,b): + out={} + for (d,q),v in a.items(): + for (e,r),w in b.items():out=add(out,{(d+e,(q+r)%4):v*w}) + return out + +def matmul(a,b):return [[add(mul(a[i][0],b[0][j]),mul(a[i][1],b[1][j])) for j in range(2)] for i in range(2)] +def transpose(a):return [list(r) for r in zip(*a)] + +def run(): + zero={};one={(0,0):1};D={(1,0):1} + F=[[D,zero],[{(1,3):1},D]] + B=[[D,{(1,1):-1}],[zero,D]] + J=[[{(0,2):1},zero],[zero,{(0,0):-1}]] + need(matmul(matmul(J,transpose(B)),J)==F,'Exact complete forward interface') + wrong=[[one,zero],[zero,{(0,0):-1}]] + need(matmul(matmul(wrong,transpose(B)),wrong)!=F,'Q squared correction is necessary') + need(matmul(matmul(J,B),J)!=F,'Circuit order and linear transpose are necessary') + # Check overwritten COPY, CLEAR and ADD as complete two-register maps. + def product(a,b):return [[sum(a[i][k]*b[k][j] for k in range(2)) for j in range(2)] for i in range(2)] + clear=[[0,0],[0,1]];copy=[[0,1],[0,1]] + clearT=transpose(clear) + need(clearT==clear,'Owned CLEAR transpose') + samples=0 + for c in (Q(-3,4),Q(-1),Q(1,4),Q(1),Q(2)): + A=[[1,c],[0,1]];T=[[1,0],[c,1]] + need(transpose(A)==T,'ADD transpose coefficient') + S=[[c,0],[0,1]];need(transpose(S)==S,'SCALE transpose') + samples+=1 + need(product(clear,[[1,0],[1,1]])==transpose(copy),'COPY transpose is ADD then CLEAR') + from native import Native + from native_identity import decide + from check_certificate import check + phase=Native.identity(9).json();phase['phase']=2 + problem={'axes':9,'roles':1,'generators':{'minus':phase}, + 'program':[{'op':'apply','dst':0,'generator':'minus'}], + 'reference':[{'op':'scale','dst':0,'coefficient':-1}]} + certificate=decide(problem) + need(certificate['status']=='COUNTEREXAMPLE','Scalar sign must stay outside tensor powers') + check(problem,certificate) + # The matrix polynomial is valid for every commuting symmetric Q,D with Q^4=I. + return {'identity':'F = J B^T J; J = diag(Q^2,-I)', + 'Q_exponents_modulus':4,'D_exponent_is_formal':True, + 'scalar_coefficients_checked':samples,'copy_and_clear_checked':True, + 'wrong_Q_correction_rejected':True,'missing_transpose_rejected':True,'scalar_sign_counterexample':certificate} diff --git a/research/native-transpose-owned/phases.py b/research/native-transpose-owned/phases.py new file mode 100644 index 0000000000..ea31c96324 --- /dev/null +++ b/research/native-transpose-owned/phases.py @@ -0,0 +1,103 @@ +"""Check physical transposition and exact phase recipes on source classes. + +Uses the credited exact Clifford compiler. Ali Romman with OpenAI Codex +assistance. Apache-2.0. +""" +from collections import Counter +from hashlib import sha256 +from copy import deepcopy +import json +from support import HERE,ROOT,read,need,load,CE,packed +ce=load(CE,'transpose_exact_clifford') + +def primitive(n,e,conjugate=False): + tag=e[0] + if tag=='P':return ce.perm(n,tuple(e[1])) + if tag=='D':return ce.diag(n,tuple(e[1]),tuple((-v)%4 for v in e[2]) if conjugate else tuple(e[2])) + if tag=='C':return ce.cgate(n,e[1],-e[2] if conjugate else e[2]) + if tag=='X':return ce.xgate(n,e[1]) + if tag=='phase': + k=(-e[1] if conjugate else e[1])%4 + return ce.Op(n,ce.identity(n),[('phase',k)]) + raise ValueError(tag) + +def conj(op): + ans=ce.ident(op.n) + for e in op.circuit:ans=ans.then(primitive(op.n,e,True)) + return ans + +def trans(op): + ans=ce.ident(op.n) + for e in reversed(op.circuit): + if e[0]=='P':e=('P',ce.inv(tuple(e[1]),op.n)) + ans=ans.then(primitive(op.n,e)) + return ans + +def decode(r): + from native import Native + Native.parse({k:list(v) if isinstance(v,tuple) else v for k,v in r.items()},9) + n=len(r['matrix_rows']) + q=tuple(r['quadratic_rows']);a=r['linear_Z4'] + need(ce.transpose(q,n)==q and all(a[i]%2==((q[i]>>i)&1) for i in range(n)),'Valid symmetric Gaussian phase recipe') + return ce.diag(n,tuple(r['quadratic_rows']),tuple(r['linear_Z4'])).then(ce.perm(n,tuple(r['matrix_rows']))).then(ce.xgate(n,r['offset'])).then(primitive(n,('phase',r['phase']))) + + +def run(x): + c=x['canonical'];p=x['programs']['backward'] + from word import base + candidate=base.construct(x)['programs']['backward'] + expected=sorted({(e[3],e[4],e[5]) for e in candidate if e[0]=='climb'}|{(e[2],e[3],e[4]) for e in candidate if e[0]=='center'}) + receipts=read(HERE/'PHASES.json.gz') + need([(r['old'],r['new'],r['rank']) for r in receipts]==expected,'Every transposed paid class exactly once') + frames={} + def frame(i): + if i not in frames:frames[i]=ce.canonical_frame(9,c['frames'][i]) + return frames[i] + def check_paid(row): + a,b,r=row['old'],row['new'],row['rank'] + want=trans(conj(frame(a).adjoint().then(frame(b)))) + physical=decode(row['right']).then(ce.fourier(9,range(r))).then(decode(row['left'])) + need(physical.tab==want.tab and physical.zero_state()==want.zero_state(),'Transposed paid absolute phase') + need(ce.rank([a for a,b,p in want.tab[9:]])==r,'Exact transposed paid rank') + for i,row in enumerate(receipts): + check_paid(row) + if i%500==0:print('PAID_PHASES',i+1,len(receipts),flush=True) + maps={} + for w in c['warps']: + G=ce.transpose(tuple(w['G_columns']),9);tr=ce.transpose(ce.inv(G,9),9) + q=tuple((1<0 else maps[abs(op)].adjoint() + old=conj(frame(a).adjoint().then(K).then(frame(b))) + want=trans(old) + new=frame(b).adjoint().then(K.adjoint()).then(frame(a)) + need(want.tab==new.tab and want.zero_state()==new.zero_state(),'Exact inverse primal native warp') + _,original=ce.monomial(old);_,changed=ce.monomial(want) + def parse(r):return Native.parse({k:list(v) if isinstance(v,tuple) else v for k,v in r.items()},9) + oldn,newn=parse(original),parse(changed) + for a0 in range(512): + b0=oldn.image(a0) + need(newn.image(b0)==a0 and newn.exponent(b0)==oldn.exponent(a0),'Literal transpose entry and phase') + columns+=1 + bad=deepcopy(receipts[0]);bad['left']['phase']=(bad['left']['phase']+2)%4 + try:check_paid(bad) + except ValueError as error:control=str(error) + else:raise ValueError('Wrong absolute phase accepted') + # C_q is symmetric and C_q squared is the exact native translation X_q. + for q in c['ports']: + Q=ce.cgate(9,q);square=Q.then(Q);native=ce.xgate(9,q) + need(square.tab==native.tab and square.zero_state()==native.zero_state(),'All actual port Q squared phases') + need(trans(Q).tab==Q.tab and trans(Q).zero_state()==Q.zero_state(),'Symmetric port Gaussian') + for rank in (4,7,8,9): + C=ce.fourier(9,range(rank));T=trans(C) + need(C.tab==T.tab and C.zero_state()==T.zero_state(),'Every productive standard Gaussian is symmetric') + fixed=conj(C).then(ce.xgate(9,(1< 0, 'Changed invoice beats the prior raw root upper endpoint') + source_open_T,source_open_P=Counter(T),Counter(P) + source_open_T[9]+=16;source_open_P[1]+=16;source_open_P[8]+=16 + source_open=read(HERE / 'source/owned/RESULT.json')['arithmetic'] + source_open_upper=Q(source_open['raw_root_interval'][1]) + need(Q(source_open['kappa'])==Q('.00302666') and source_open_upper==Q('0.00302667476808'), 'Pinned PR5383 complete bound') + need(source_open_T==Counter({int(r): n for r,n in source_open['targets'].items()}) and source_open_P==Counter({int(r): n for r,n in source_open['paid'].items()}), 'Exact complete PR5383 profile') + need(E.moment(source_open_T,1-source_open_upper)[1] < E.moment(source_open_P,1-source_open_upper)[0], 'Published PR5383 root upper sign') + need(margin(source_open_upper)[0]>0,'New complete profile beats PR5383 raw crossing') + lo, hi, grid = 0, 10**12, 10**14 + while hi - lo > 1: + mid = (lo + hi) // 2 + if margin(Q(mid, grid))[0] > 0: lo = mid + else: hi = mid + root_low, root_high = Q(lo, grid), Q(hi, grid) + need(margin(root_low)[0] > 0 and margin(root_high)[1] < 0, 'Strict rational root enclosure') + need(PREVIOUS < KAPPA < TESTED < root_low, 'New bound and explicit compiler headroom') + # The complete signed profile decreases on [0, .05], and stays negative + # on [.05, 1]. This proves a fixed-profile ceiling, not a circuit ceiling. + signed = {r: T[r] - P[r] for r in T.keys() | P.keys()} + derivative, upper = None, None + for i in range(16): + l, r = Q(i, 320), Q(i + 1, 320); low = Q(0) + for rank, n in signed.items(): + term = E.mul(E.power(rank, 1 - r if n > 0 else 1 - l), E.log_bounds(rank)) + low += n * term[0 if n > 0 else 1] + derivative = low if derivative is None else min(derivative, low) + for i in range(128): + l, r = Q(1, 20) + Q(19 * i, 2560), Q(1, 20) + Q(19 * (i + 1), 2560) + value = sum(n * E.power(rank, 1 - l if n > 0 else 1 - r)[1 if n > 0 else 0] for rank, n in signed.items()) + upper = value if upper is None else max(upper, value) + need(derivative > 0 and upper < 0, 'Fixed-profile ceiling on all 0 < kappa < 1') + t, u, v, c, b = 1 - TESTED, Q(1, 5), 1024, 20, 21 + target, paid = E.moment(T, t), E.moment(P, t) + tl, th = other.moment(T, TESTED); pl, ph = other.moment(P, TESTED) + need(tl > ph and max(tl, target[0]) <= min(th, target[1]) and max(pl, paid[0]) <= min(ph, paid[1]), 'Two exact interval engines agree') + alpha = E.divide(paid, target) + gamma = E.divide(E.moment(P, t + u), E.mul(E.power(c, u), target)) + delta = E.divide((Q(sum(T.values()) * b),) * 2, E.mul(E.power(c, TESTED), target)) + reserve = Q(1, 10**9); g = d = Q(97, 100) + need(alpha[1] < 1 - reserve and gamma[1] < g and delta[1] < d, 'Original and completion tails charged') + need(g**128 < Q(1, 16) and d**128 < Q(1, 16), 'Two strict tail decay blocks') + normalized = 1 / (1 + v * reserve) + Q(4, 2**32) + need(normalized < 1 and c**64 < b**63, 'Paid completion, splitting and rounding') + theta, power = Q(63, 64), 1000 + eta = E.scale(E.power(145, -v * TESTED), t) + need(2 * (20**v)**64 <= (145**v)**63 and eta[0] > theta**power, 'Shifted exits and complement capacity') + need(E.power(145, v * TESTED)[1] < 2**power, 'Compiler initial range') + gap = (TESTED - KAPPA) / 7; need(gap.numerator == 1, 'Finite integer grid') + step = gap.denominator + def wins(j): return (step * j + 1)**power < 2**j + left, right = 1, 2 + while not wins(right): left, right = right, 2 * right + while right - left > 1: + mid = (left + right) // 2 + if wins(mid): right = mid + else: left = mid + height = step * right + need(height > 8 * v and wins(right) and not wins(right - 1), 'Finite uniform-rank threshold') + local_scalar = max(x['real_scalar_allowance'] for x in native.values()) + # Double the source route allowance, including all owned field lifetimes. + # COPY splits into ADD and CLEAR. Add each boundary and helper pass. + routes = (2 * (sum(OLD_PAID.values()) + 2 * 408 + 688 + 32) + 2 * 112 + 400) * 1000 + need(local_scalar + routes < 2 * 10**7, 'All new preparation, COPY, CLEAR and fixed routes fit') + scalar_upper = 18 * 2 * 10**7 + 15 * 1792 + 32 * 112 * (len(word['physical_events']) + sum(len(word['boundaries'][k + '_program']) for k in ('left', 'right'))) + need(scalar_upper < 10**9, 'Complete raw nonrecursive bound') + bit = read(ROOT / 'research/query-thinned-controllers/RESULT.json')['ordinary_BIT'] + atom = Q(bit['atom']); ordinary = (1 - atom) * Q(bit['after_cover']) + atom * Q('.0000384599'); admitted = Q(bit['admitted']) + need(atom == Q('.004') and atom > ordinary > admitted > TESTED and atom < 1 - ordinary, 'Retained stronger BIT admission and stock') + L = load('research/pr4359-p7-padding/dependencies/compiler-refill/endpoint.py', 'owned_relation_outer') + params = {'kappa': KAPPA, 'tested_saving': TESTED, 'complex_uniform_saving': KAPPA + 6 * gap, + 'b': KAPPA + 5 * gap, 'a': KAPPA + 4 * gap, 'q': KAPPA + 3 * gap, 'bit_saving': admitted, + 'epsilon': 1 - gap, 'beta': 1 - 3 * gap, 'r0': gap / 10, 'stop': gap, 'layout': gap, 'd': gap} + outer = L.ledger(params); outer['functional_checks']['actual_new_BIT_stock_sublinear'] = params['beta'] * (1 - atom) + need(len(outer['strict_checks']) == 54 and len(outer['functional_checks']) == 4, 'Complete outer predicate inventory') + need(all(x > 0 for key in ('strict_checks', 'functional_checks') for x in outer[key].values()), 'Every outer inequality is strict') + controls = {} + for name, patch in [('old_BIT', {'bit_saving': Q('.0027')}), ('closed_uniform', {'complex_uniform_saving': params['b']}), ('unfunded_endpoint', {'kappa': TESTED}), ('closed_epsilon', {'epsilon': Q(1)})]: + bad = L.ledger(dict(params, **patch)); failed = [k for k, x in bad['strict_checks'].items() if x <= 0] + need(failed, 'Reject outer patch ' + name); controls[name] = failed + bad_native = {d: dict(x) for d, x in native.items()} + bad_native['backward']['helpers'] = OLD_HELPERS + try: assemble(bad_native, word) + except ValueError: controls['unearned_helper_credit'] = 'Rejected by the independent complete census' + else: raise ValueError('Unowned helper credit was accepted') + return encode({'kappa': KAPPA, 'kappa_decimal': '.00302725', 'gain_over_PR4610': KAPPA - PREVIOUS, 'gain_over_PR5383': KAPPA-Q('.00302666'), + 'PR5383_raw_root_upper': source_open_upper, 'margin_at_PR5383_raw_root_upper': E.display(margin(source_open_upper)), + 'raw_root_interval': [root_low, root_high], 'raw_headroom': [root_low - KAPPA, root_high - KAPPA], + 'margin_at_previous_kappa': E.display(margin(PREVIOUS)), + 'margin_at_previous_root_upper': E.display(margin(OLD_ROOT_UPPER)), + 'fixed_profile_ceiling': {'decreasing_through': Q(1, 20), 'derivative_upper': E.display((-derivative,) * 2), 'remaining_interval_moment_upper': E.display((upper,) * 2)}, + 'targets': T, 'paid': P, 'productive_fields': sum(T.values()), 'paid_calls': sum(P.values()), 'rank_mass_surplus': 752, + 'full_backward': 16, 'full_forward': 2, 'query_shears': 15, + 'strictification': {'tested': TESTED, 'power': v, 'cutoff': c, 'floor': b, 'tail_offset': u, 'reserve': reserve, 'alpha': E.display(alpha), 'gamma': E.display(gamma), 'delta': E.display(delta), 'normalized_paid_upper': normalized}, + 'compiler': {'theta': theta, 'logarithm_power': power, 'eta': E.display(eta), 'gap': gap, 'uniform_saving': params['complex_uniform_saving'], 'H': height, 'N': '2^' + str(height), 'integer_test_exponent': right, 'word_materialized': False}, + 'nonrecursive': {'local_scalar': local_scalar, 'local_routes': routes, 'raw_scalar_upper': scalar_upper, 'raw_budget': 10**9, 'additional_private_slots': 8, 'owned_slots_per_direction': 17}, + 'ordinary_BIT': bit, 'outer': outer, 'negative_controls': controls}) diff --git a/research/native-transpose-owned/support.py b/research/native-transpose-owned/support.py new file mode 100644 index 0000000000..f126e462ba --- /dev/null +++ b/research/native-transpose-owned/support.py @@ -0,0 +1,41 @@ +"""Read pinned inputs and load the exact source modules. Apache-2.0.""" +from pathlib import Path +from fractions import Fraction +from hashlib import sha1,sha256 +import gzip,importlib.util,json,sys +HERE=Path(__file__).resolve().parent +ROOT=HERE.parents[1] +OLD_PAID={1:2201,2:412,3:510,4:127,5:40,8:8} +OLD_HELPERS={4:28,7:7,8:47,9:326} +SOURCE='research/kappa-round3-warp-20261022/ACTUAL-WORD.json.gz' +PAYLOAD='cfcd36b40326d7a5815e1db5313444379b3fb756b27d5201c561574c085cc0dd' +CE='research/t74-native-fast/vendor/native/new/code/borrow/vendor/clifford/clifford_exact.py' +def need(ok,why): + if not ok:raise ValueError(why) +def read(path): + data=Path(path).read_bytes() + return json.loads(gzip.decompress(data) if str(path).endswith('.gz') else data) +def load(relative,name): + spec=importlib.util.spec_from_file_location(name,ROOT/relative) + module=importlib.util.module_from_spec(spec);sys.modules[name]=module + spec.loader.exec_module(module) + return module +def encode(x): + if isinstance(x,Fraction):return str(x) + if isinstance(x,dict):return {str(k):encode(v) for k,v in x.items()} + if isinstance(x,(tuple,list)):return [encode(v) for v in x] + return x +def packed(x):return (json.dumps(encode(x),sort_keys=True,separators=(',',':'))+'\n').encode() +def authenticate(): + pins=read(HERE/'SOURCES.json') + for row in pins['files']: + if row['usage']!='input':continue + p=ROOT + for part in Path(row['path']).parts: + p/=part;need(not p.is_symlink(),'No source alias') + data=p.read_bytes() + need(sha256(data).hexdigest()==row['sha256'],'Source bytes: '+row['path']) + need(sha1(b'blob '+str(len(data)).encode()+b'\0'+data).hexdigest()==row['git_blob'],'Source Git blob') + raw=gzip.decompress((ROOT/SOURCE).read_bytes()) + need(sha256(raw).hexdigest()==PAYLOAD,'Final PR4610 payload') + return json.loads(raw) diff --git a/research/native-transpose-owned/verify.py b/research/native-transpose-owned/verify.py new file mode 100644 index 0000000000..b3c1c49706 --- /dev/null +++ b/research/native-transpose-owned/verify.py @@ -0,0 +1,46 @@ +"""Check the owned transpose, physical phases and complete conditional bound. + +Ali Romman with substantial OpenAI Codex assistance. Apache-2.0. +""" +from pathlib import Path +import argparse,gzip,json,sys +sys.dont_write_bytecode=True +HERE=Path(__file__).resolve().parent +sys.path.insert(0,str(HERE)) +from support import authenticate,read,need,packed + +def run(): + source=authenticate() + import word,interface,phases,price + from check_certificate import check + native,emitted,problem=word.run(source) + check(problem,native['native']) + print('PASS_TRANSPOSE_ALL_INPUTS_AND_NATIVE_CHECKER',flush=True) + boundary=interface.run() + physical=phases.run(source) + print('PASS_TRANSPOSE_ALL_PHYSICAL_CLASSES',flush=True) + b=native['source_replay'] + f=dict(b,real_scalar_allowance=native['real_scalar_allowance'], + max_formal_prefix_l1=native['transpose']['max_formal_prefix_l1'], + max_denominator=native['transpose']['max_denominator']) + arithmetic=price.run({'forward':f,'backward':b}) + result={'status':'PASS_CONDITIONAL_KAPPA_00302725_OWNED_TRANSPOSE', + 'native':native,'interface':boundary,'physical':physical,'arithmetic':arithmetic} + return result,emitted,problem + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--write',action='store_true',help='Write this package after every check passes') + args=parser.parse_args() + result,emitted,problem=run() + artifacts={'RESULT.json':result,'WORD.json.gz':emitted,'NATIVE-PROBLEM.json.gz':problem, + 'NATIVE-CERTIFICATE.json':result['native']['native']} + for name,value in artifacts.items(): + path=HERE/name + if args.write: + data=packed(value) + path.write_bytes(gzip.compress(data,mtime=0) if name.endswith('.gz') else data) + else:need(read(path)==json.loads(packed(value)),'Exact committed artifact: '+name) + print(result['status'],flush=True) + return 0 +if __name__=='__main__':raise SystemExit(main()) diff --git a/research/native-transpose-owned/word.py b/research/native-transpose-owned/word.py new file mode 100644 index 0000000000..df11d06f64 --- /dev/null +++ b/research/native-transpose-owned/word.py @@ -0,0 +1,144 @@ +"""Check the literal transpose and its formal bridge cancellation. + +The bridge is a coordinate proof symbol, not an emitted physical operation. +The source zero_retag is physical identity. Its transpose is identity. +Credit the classical transposition principle and PR5383 by Ali Romman, +Cao Yifan's word, Cinna Davis and the retained native authors. Apache-2.0. +Prepared by Ali Romman with OpenAI Codex assistance. +""" +from fractions import Fraction as Q +from collections import Counter +from hashlib import sha256 +from pathlib import Path +import json,sys +from support import HERE,ROOT,need,load,packed +sys.path.insert(0,str(HERE/'source/cutoff')) +from native_identity import decide +base=load('research/native-transpose-owned/source/owned/native.py','transpose_owned_source') +ROLES=632+base.COUNT+1 +OWNED=set(base.BASIS)|set(range(632,ROLES)) + +def recipes(c): + from phases import ce + from native import Native + out={} + for w in c['warps']: + rows=ce.transpose(tuple(w['G_columns']),9) + tr=ce.transpose(ce.inv(rows,9),9) + q=tuple((1< Date: Fri, 23 Oct 2026 16:20:38 -0500 Subject: [PATCH 3/4] Preserve the exact final newline in copied predecessor files --- research/native-transpose-owned/source/owned/RESULT.json | 1 - research/native-transpose-owned/source/owned/WITNESS.json | 1 - research/native-transpose-owned/source/owned/native.py | 1 - 3 files changed, 3 deletions(-) diff --git a/research/native-transpose-owned/source/owned/RESULT.json b/research/native-transpose-owned/source/owned/RESULT.json index e3c7e2dcfe..b6c9cd0da1 100644 --- a/research/native-transpose-owned/source/owned/RESULT.json +++ b/research/native-transpose-owned/source/owned/RESULT.json @@ -959,4 +959,3 @@ "status": "PASS_CONDITIONAL_KAPPA_00302666_EIGHT_JOINT_RELATIONS", "word_payload_sha256": "2aee5e997df99726fc763e510d9cb69fbe4f86114dc8d2cd33ad26c6c462a21d" } - diff --git a/research/native-transpose-owned/source/owned/WITNESS.json b/research/native-transpose-owned/source/owned/WITNESS.json index c2fd2e99d9..19665f9eac 100644 --- a/research/native-transpose-owned/source/owned/WITNESS.json +++ b/research/native-transpose-owned/source/owned/WITNESS.json @@ -432,4 +432,3 @@ "zero_factor": "-1/4" } ] - diff --git a/research/native-transpose-owned/source/owned/native.py b/research/native-transpose-owned/source/owned/native.py index c3d6a42e53..cbff46fe6e 100644 --- a/research/native-transpose-owned/source/owned/native.py +++ b/research/native-transpose-owned/source/owned/native.py @@ -342,4 +342,3 @@ def controls(c, candidate): else: raise ValueError('Control accepted: ' + name) return controls - From 329b2ff35d2994b11abbb59f770d12da75c494ac Mon Sep 17 00:00:00 2001 From: Ali Romman <226877337+aliromman@users.noreply.github.com> Date: Fri, 23 Oct 2026 16:20:53 -0500 Subject: [PATCH 4/4] Bind the replay to exact retained source bytes --- research/native-transpose-owned/README.md | 2 +- research/native-transpose-owned/SOURCES.json | 26 ++++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/research/native-transpose-owned/README.md b/research/native-transpose-owned/README.md index 4e813ac49e..def61111b8 100644 --- a/research/native-transpose-owned/README.md +++ b/research/native-transpose-owned/README.md @@ -34,7 +34,7 @@ JSON serialization with a final newline, has SHA256 The verifier reconstructs and checks that exact word before transposition. It does not consume a later PR head or an unpublished helper relation. The exact source files are retained in commit -`7dd93dc61ed01b06199ea21e66036e960ba9c7aa` in this branch. The live pins use +`5eb314069417db1f4305430b6b14f20e9251e509` in this branch. The live pins use that ancestor; each `source_pin` retains the original PR source and hash. A clean checkout does not need either pending PR commit in its object store. diff --git a/research/native-transpose-owned/SOURCES.json b/research/native-transpose-owned/SOURCES.json index 7c9eb53907..2c282a0239 100644 --- a/research/native-transpose-owned/SOURCES.json +++ b/research/native-transpose-owned/SOURCES.json @@ -61,7 +61,7 @@ "usage": "input", "git_blob": "8872f540e108010cdf6d143fa9d89729693a3ed6", "sha256": "9e30aa82ce17e41d04db81f140475b6f782f274e017c2a32996bd71e4aa9c751", - "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/cutoff/native.py", + "pin": "head:5eb314069417db1f4305430b6b14f20e9251e509:research/native-transpose-owned/source/cutoff/native.py", "source_pin": "head:18354f41de4dc7bfda4692e814cf1d91a6d619ef:research/native-tensor-cutoff/native.py" }, { @@ -69,7 +69,7 @@ "usage": "input", "git_blob": "85376a935d1e9b19202d773c78d09c9025e8a899", "sha256": "3ca738030aedad5c173579f99254b88aa5edccd02e575945511679ef7b44d452", - "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/cutoff/native_identity.py", + "pin": "head:5eb314069417db1f4305430b6b14f20e9251e509:research/native-transpose-owned/source/cutoff/native_identity.py", "source_pin": "head:18354f41de4dc7bfda4692e814cf1d91a6d619ef:research/native-tensor-cutoff/native_identity.py" }, { @@ -77,7 +77,7 @@ "usage": "input", "git_blob": "4f8514d1a2ab211b46e820e030e2feda36a4882c", "sha256": "6d918d23200b7603b620fbe0a3efefd5d05a20d0b99ad8bb9a43b8fcb9e39130", - "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/cutoff/exact.py", + "pin": "head:5eb314069417db1f4305430b6b14f20e9251e509:research/native-transpose-owned/source/cutoff/exact.py", "source_pin": "head:18354f41de4dc7bfda4692e814cf1d91a6d619ef:research/native-tensor-cutoff/exact.py" }, { @@ -85,23 +85,23 @@ "usage": "input", "git_blob": "929ccceeff54218a6b834a838ffb05c18aff4aad", "sha256": "a6d73b8cefb3c26e39661e6d6eedabfe2c15df123695ba19386daa11d93142aa", - "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/cutoff/check_certificate.py", + "pin": "head:5eb314069417db1f4305430b6b14f20e9251e509:research/native-transpose-owned/source/cutoff/check_certificate.py", "source_pin": "head:18354f41de4dc7bfda4692e814cf1d91a6d619ef:research/native-tensor-cutoff/check_certificate.py" }, { "path": "research/native-transpose-owned/source/owned/native.py", "usage": "input", - "git_blob": "c3d6a42e5358cd8c91dc8c975c61615ef9df592c", - "sha256": "35d3eaab351a1e6bdc62ab62d6a9669e1224abaaa7a0f9c694509b5c8d020382", - "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/owned/native.py", + "git_blob": "cbff46fe6e7d71c10fe439610f1916ad07fa3cd8", + "sha256": "3c8efab1f830868c054d33391ee2f8bc74f9bae9c134edf5b455790eb674c1c4", + "pin": "head:5eb314069417db1f4305430b6b14f20e9251e509:research/native-transpose-owned/source/owned/native.py", "source_pin": "head:4bd6efa51a495a7c7b7754915cf0244e7e60969e:research/kappa-joint-relations-20261023/native.py" }, { "path": "research/native-transpose-owned/source/owned/WITNESS.json", "usage": "input", - "git_blob": "c2fd2e99d9efa5fb984269aac2120be48fb4febd", - "sha256": "9dba23f294e3c78de56f922c5726942aa740b6f41566488c2d6a158a01d90a07", - "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/owned/WITNESS.json", + "git_blob": "19665f9eac2238d709758e0296eb6016e71b2b1a", + "sha256": "24599011da06325e1012619b2b84a4dd3aceb90ab42d3caaf6414879e7d16591", + "pin": "head:5eb314069417db1f4305430b6b14f20e9251e509:research/native-transpose-owned/source/owned/WITNESS.json", "source_pin": "head:4bd6efa51a495a7c7b7754915cf0244e7e60969e:research/kappa-joint-relations-20261023/WITNESS.json" }, { @@ -125,9 +125,9 @@ { "path": "research/native-transpose-owned/source/owned/RESULT.json", "usage": "input", - "git_blob": "e3c7e2dcfe8f98f7972dbd0e0d2d86bd203e9895", - "sha256": "34df5132f0c66ecae8b2deb793d5012841966f99864ef855234eb81b0271d620", - "pin": "head:7dd93dc61ed01b06199ea21e66036e960ba9c7aa:research/native-transpose-owned/source/owned/RESULT.json", + "git_blob": "b6c9cd0da1889ed92f3f1066127a203246f303d8", + "sha256": "d6a99bd75c6b7a2146b0fc4cfa038890aaf1d4adcdef42d767fdb40b687e61aa", + "pin": "head:5eb314069417db1f4305430b6b14f20e9251e509:research/native-transpose-owned/source/owned/RESULT.json", "source_pin": "head:4bd6efa51a495a7c7b7754915cf0244e7e60969e:research/kappa-joint-relations-20261023/RESULT.json" } ]

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