{"name":"treeOS_LOG","contract":"treeOS_LOG/OMEGA-SRSD/1.0","version":"1.0.0","date":"2026-11-07","owner":"Matthew Alan Newman; @NVE024","scope":"OMEGA joining profile compatible with frozen SRSD; not the entire archive or an installed OS.","parent":{"file":"treeOS_LOG_PATCH_for_SRSD.json@2","contract":"treeOS_LOG/SRSD-PATCH/1.0","canonical_object_sha256":"9846a9fb9de2c85a6d5556db3ae3d465950e01ca2db3fca6938d50e6f90820ab"},"foundation":{"authority":"Scale-Resolved State Dynamics: Foundational Closure Specification","doi":"10.5281/zenodo.21927248","definitions":{"Delta_s":"diag(s_1,...,s_m)","C_s":"product_i [0,s_i)","R_s":"Z^m x C_s","q_s(y)_i":"floor(y_i/s_i)","r_s(y)":"y - Delta_s*q_s(y)","E_s":"R^m -> R_s; y |-> (q_s(y),r_s(y))","D_s":"R_s -> R^m; (d,rho) |-> Delta_s*d+rho","H":"Phi_rep:X->C;G:C->R^m;H=G o Phi_rep","L":"E_s o H","Eq(f)":"{(a,b) in domain(f)^2 : f(a)=f(b)}","fiber(f,z)":"{a in domain(f) : f(a)=z}","cell(s,d)":"Delta_s*d + C_s","P":"Optional declared record map R_s -> A; need not be linear or idempotent."},"theorems":[{"id":"F1","statement":"For m>=1,s_i>0, E_s:R^m->R_s and D_s:R_s->R^m are two-sided inverses.","proof":"Set d_i=floor(y_i/s_i); 0<=y_i-s_i*d_i<s_i gives existence. Two admissible decompositions give an integer difference of quotients in (-1,1), hence zero. Conversely floor(d_i+rho_i/s_i)=d_i.","depends":[]},{"id":"F2","statement":"For H:X->Y,J:Y->Z, Eq(H) subset Eq(J o H), with equality iff J is injective on H(X).","proof":"Postcomposition preserves equalities. Restricted injectivity gives the reverse implication; its failure gives distinct reached values, hence source preimages, with equal J-values.","depends":[]},{"id":"F3","statement":"For H:X->R^m, Eq(E_s o H)=Eq(H). Thus E_s o H is injective iff H is.","proof":"F1 makes E_s injective. Apply F2.","depends":["F1","F2"]},{"id":"F4","statement":"For H:X->R^m and admissible e=(d,rho), fiber(E_s o H,e)=fiber(H,Delta_s*d+rho), including empty fibers.","proof":"By F1, E_s(H(x))=e iff H(x)=D_s(e).","depends":["F1"]},{"id":"F5","statement":"For n>=1 composable f_i:X_(i-1)->X_i, the composite is injective iff every f_i is injective on its reached input image.","proof":"Restricted injective stages compose. A collision at reached inputs has source preimages and persists to the final output, contradicting composite injectivity.","depends":[]},{"id":"F6","statement":"For L=E_s o H and any P:R_s->A, Eq(H)=Eq(L) subset Eq(P o L), with equality iff P is injective on L(X).","proof":"Apply F3, then F2 to P.","depends":["F2","F3"]},{"id":"F7","statement":"Adding q_s,r_s,E_s,D_s,H,L by explicit definitions is conservative over a classical background proving unique existence, with definable domains.","proof":"Expand each new symbol by its definition in every proof step. Unique existence validates substitution; defining axioms become background theorems. Original-language conclusions remain unchanged.","depends":[]}]},"omega":{"phi":"(1+sqrt(5))/2","lambda":"phi/(phi+pi)","Q":"339949771344778","S":"1000000000000000","D":"25000000000000000","M":"13I+A; pinned unit 600-cell, lexicographic coordinate-pair order","P":"M/25; scoped separately from SRSD record-map P","T":"floor(Q*M*d/D)","Omega_gamma":"1+gamma*(t-1)","F_gamma":"1+gamma*P*(v-1)","r":"QM*d-D*T(d)","s":"d mod8 in 0..7","h":"4948372000"},"joining_proofs":[{"id":"G1","depends":[],"domain":"Pinned 600-cell coordinates C; 2C=C0+phi*C1; phi^2=phi+1.","statement":"AC=6phi*C; C^T C=30I4; 1^T C=0.","proof":"The kernel checks AC0=6C1 and AC1=6C0+6C1 entrywise. Substitute 2C and phi^2=phi+1. Checked Grams C0^TC0=72I, C0^TC1=-24I, C1^TC1=48I imply C^TC=30I. Column sums vanish."},{"id":"G2","depends":["G1"],"domain":"u=(t,x,z) in Z x Z^4 x Z^4.","statement":"B=[1 C0 C1], E_Z(u)=Bu; LB=I9; MB=BK.","proof":"L=[1^T;2C0^T+C1^T;C0^T+3C1^T]/120. K(t,x,z)=(25t,13x+6z,6x+19z). Kernel multiplies every entry of LB and MB-BK. Thus equal Bu imply equal u, and M preserves the encoded family. Flooring need not: the kernel exhibits B*Lnum*T(C0e0)!=120*T(C0e0)."},{"id":"G3","depends":["G1"],"domain":"a>0,ref>0; t in R,w in R^4; 0<gamma<1.","statement":"chi(lambda*a)=Omega_lambda(chi(a)); F_gamma(E(t,w))=E(Omega_gamma(t),gamma*(13+6phi)*w/25).","proof":"Selected lengths a*phi and a*pi give lambda. Set chi(a)=1+a/ref, inverse ref*(t-1). Substitute. For E=t1+Cw, use P1=1, PC=(13+6phi)C/25. Mean and C^T/30 invert this image. P has infinity norm 1; gamma P contracts. Mean alone is not invertible."},{"id":"G4","depends":[],"domain":"Nonzero k in Z^120.","statement":"||Mk||_inf>=10.","proof":"Kernel recomputes 120 positive leading principal determinants of symmetric M-9I, with exact Bareiss division. Sylvester gives k^TMk>9sum k_i^2. If ||Mk||_inf<=9, then k^TMk<=9sum|k_i|<=9sum k_i^2, contradiction. Mk is integral."},{"id":"G5","depends":["G4"],"domain":"All d,e in Z^120; canonical mod8.","statement":"d -> (T(d),d mod8) is injective.","proof":"Equal residues give d-e=8k. Equal floors imply ||QM(d-e)/D||_inf<1. For nonzero k, G4 gives at least 80Q/D>1, an exact checked inequality. Hence k=0."},{"id":"G6","depends":["G5"],"domain":"Valid images only: full (y,r), mod8 (y,s).","statement":"Dfull=N(Dy+r)/(Qh); J(y,r)=(y,Dfull mod8); H(y,s)=(y,QM*D8(y,s)-Dy); HJ=Id,JH=Id.","proof":"Kernel verifies MN=NM=hI and norm_N=801320608. Full validity is 0<=r<D and integral Dfull; substitution proves recovery. For D8, inverse cell width D*norm_N/(Qh)<12 bounds each coordinate; mod8 leaves at most two candidates. Finite search with exact row pruning and re-encoding finds the unique predecessor. Both translations recover that same d. Budget exhaustion is UNRESOLVED."},{"id":"G7","depends":["G2","G5","G6"],"domain":"Any finite n>=0; d0=E_Z(u); d_(k+1)=T(d_k).","statement":"E_Z^-1 o DecodeHistory8 o EncodeHistory8 o E_Z=Id.","proof":"Retain terminal d_n and ordered s_k=d_k mod8. For n=0 use identity; for n>0 G6 recovers the last predecessor, then induction recovers d0. Apply L to recover u. Each witness is 360 bits=45 bytes; terminal state, order, horizon and interpretation are also required."},{"id":"G8","depends":["G6"],"domain":"Signed integer n,d; q=Q/S; ideal lambda distinct.","statement":"T(n1)=floor(Qn/S)1; r(n1)=25rho(n)1; F_lambda(1+d)=1+T(d)+r(d)/D+(lambda-q)Pd.","proof":"M1=25*1 and D=25S give scalar identities. Summing QM d=D T(d)+r gives q*mean(d)=mean(T(d))+mean(r)/D. Add (lambda-q)Pd for ideal correction. Error e_(k+1)=lambda P e_k+(lambda-q)Pd_k+r_k/D, e0=0; induction unrolls any finite history. Kernel proves floors differ at n=2S by exact rational sqrt/Machin/alternating-series bounds."},{"id":"G9","depends":["G5","G6"],"domain":"Cnet=(Q/D)M; y integral; s canonical.","statement":"Exact candidate set=Cnet^-1(y+[0,1)^120) intersect (s+8Z^120); at most one point.","proof":"Floor inequalities give the set equality. G5 gives uniqueness, existence holds for valid records. Coordinate bounds only enclose it. The capacity packing body [0,73]^120+M[0,1]^120 is different. No proof of the optimum 307<=ell*<=352 or fast general decoding follows."}],"gate":{"verdicts":["SOURCE_BACKED","INSTANCE_CHECKED","PROOF_CHECKED","CONDITIONAL","UNVERIFIED","REJECTED","UNRESOLVED"],"policy":"INSTANCE_CHECKED covers recomputed finite data only. Written proofs are not proof-assistant receipts; PROOF_CHECKED needs an external trusted checker. Missing premises stay conditional/unverified; budgets are UNRESOLVED. Supplied PASS flags confer no authority. Hashes identify bytes, not truth or inverses. Never eval theorem strings or auto-run retrieved code. Keep domains, versions, order and dependency closure; reject cycles."},"kernel":{"profiles":["SRSD-RATIONAL/1 (original m<=64 kernel unchanged)","TREEOS-OMEGA-120/1 (separate fixed 120-coordinate adapter)"],"language":"Python 3.10+; stdlib","legacy_source_sha256":"8ca05b7dabb224e30748f65b702b42650e7b8c5835675f923811d15cbfe40bd6","sha256":"f31230bf8a31d45b91b637ba9aa2df42b9ec534c3a54baaca4205d90a077d5b7","python":"from fractions import Fraction as F\nfrom math import gcd\nimport hashlib, json, re\nclass Rejected(ValueError):\n    pass\ndef need(ok, why):\n    if not ok:\n        raise Rejected(why)\ndef fields(x, names):\n    need(type(x) is dict and set(x) == set(names.split()), 'FIELD_SET')\ndef Z(x):\n    need(type(x) is str and len(x) <= 1024, 'INTEGER_STRING')\n    need(re.fullmatch(r'0|-?[1-9][0-9]*', x) is not None, 'INTEGER_CANON')\n    return int(x)\ndef R(x):\n    need(type(x) is str and x.count('/') == 1, 'RATIONAL_STRING')\n    a, b = map(Z, x.split('/'))\n    need(b > 0 and gcd(abs(a), b) == 1, 'RATIONAL_CANON')\n    return F(a, b)\ndef out(x):\n    a, b = str(x.numerator), str(x.denominator)\n    Z(a); Z(b)\n    return a + '/' + b\ndef vec(x):\n    need(type(x) is list and 1 <= len(x) <= 64, 'VECTOR_SIZE')\n    return [R(v) for v in x]\ndef encode(s, y):\n    ss, yy = vec(s), vec(y)\n    need(len(ss) == len(yy) and all(v > 0 for v in ss), 'SCALE')\n    dd = [v // t for v, t in zip(yy, ss)]\n    rr = [v - t*d for v, t, d in zip(yy, ss, dd)]\n    return {'m': len(ss), 's': [out(t) for t in ss],\n            'd': [str(Z(str(d))) for d in dd], 'rho': [out(r) for r in rr]}\ndef decode(e):\n    fields(e, 'm s d rho')\n    ss, rr = vec(e['s']), vec(e['rho'])\n    need(type(e['m']) is int and e['m'] == len(ss), 'DIMENSION')\n    need(type(e['d']) is list, 'QUOTIENT_VECTOR')\n    dd = [Z(d) for d in e['d']]\n    need(len(ss) == len(rr) == len(dd), 'DIMENSION')\n    need(all(t > 0 and 0 <= r < t for t, r in zip(ss, rr)), 'CELL')\n    return [t*d+r for t, d, r in zip(ss, dd, rr)]\ndef reverse(Q, S, terminal, rhos):\n    q, s, v = Z(Q), Z(S), Z(terminal)\n    need(q > 0 and s > 0, 'LEDGER_PARAMETERS')\n    need(type(rhos) is list and len(rhos) <= 256, 'LEDGER_LENGTH')\n    orbit = [v]\n    for raw in reversed(rhos):\n        r = Z(raw)\n        need(0 <= r < s, 'LEDGER_RESIDUAL')\n        t = s*v+r\n        need(t % q == 0, 'REVERSE_DIVISIBILITY')\n        v = t // q\n        orbit.append(v)\n    return [str(Z(str(d))) for d in reversed(orbit)]\ndef canonical(x):\n    def visit(v):\n        if type(v) is str:\n            v.encode('utf-8')\n        elif v is None or type(v) in (bool, int):\n            return\n        elif type(v) is list:\n            for w in v: visit(w)\n        elif type(v) is dict:\n            for k, w in v.items():\n                need(type(k) is str, 'KEY_TYPE')\n                visit(k); visit(w)\n        else:\n            raise Rejected('JSON_TYPE')\n    visit(x)\n    return json.dumps(x, sort_keys=True, ensure_ascii=True,\n                      separators=(',', ':'), allow_nan=False).encode('ascii')\ndef loads(text):\n    need(type(text) is str and len(text) <= 1000000, 'JSON_SIZE')\n    def pairs(items):\n        obj = {}\n        for k, v in items:\n            need(k not in obj, 'DUPLICATE_KEY')\n            obj[k] = v\n        return obj\n    def bad(x):\n        raise Rejected('FLOAT_OR_NONFINITE')\n    obj = json.loads(text, object_pairs_hook=pairs,\n                     parse_float=bad, parse_constant=bad)\n    canonical(obj)\n    return obj\ndef compute(a):\n    need(type(a) is dict and type(a.get('op')) is str, 'REQUEST')\n    op = a['op']\n    if op == 'encode':\n        fields(a, 'op s y')\n        return encode(a['s'], a['y'])\n    if op == 'decode':\n        fields(a, 'op record')\n        return {'y': [out(v) for v in decode(a['record'])]}\n    if op == 'verify':\n        fields(a, 'op record y')\n        yy = decode(a['record'])\n        need(vec(a['y']) == yy, 'IDENTITY')\n        need(encode(a['record']['s'], a['y']) == a['record'], 'ENCODER')\n        return {'valid': True}\n    if op == 'rescale':\n        fields(a, 'op record s')\n        return encode(a['s'], [out(v) for v in decode(a['record'])])\n    if op == 'add':\n        fields(a, 'op left right')\n        x, y = decode(a['left']), decode(a['right'])\n        need(a['left']['s'] == a['right']['s'], 'SCALE_MISMATCH')\n        return encode(a['left']['s'], [out(v+w) for v, w in zip(x, y)])\n    if op == 'reverse_ledger':\n        fields(a, 'op Q S terminal rhos')\n        return {'orbit': reverse(a['Q'], a['S'], a['terminal'], a['rhos'])}\n    if op == 'verify_ledger':\n        fields(a, 'op Q S orbit rhos')\n        need(type(a['orbit']) is list and 1 <= len(a['orbit']) <= 257, 'ORBIT')\n        for d in a['orbit']: Z(d)\n        expected = reverse(a['Q'], a['S'], a['orbit'][-1], a['rhos'])\n        need(a['orbit'] == expected, 'LEDGER_IDENTITY')\n        return {'valid': True}\n    raise Rejected('UNSUPPORTED_OPERATION')\ndef attest(request, expected=None):\n    a = loads(canonical(request).decode('ascii'))\n    result = compute(a)\n    if expected is not None:\n        need(canonical(result) == canonical(expected), 'CLAIM_MISMATCH')\n    return {'status': 'INSTANCE_CHECKED', 'profile': 'SRSD-RATIONAL/1',\n            'request_sha256': hashlib.sha256(canonical(a)).hexdigest(),\n            'request': a, 'result': result,\n            'scope': 'Only this concrete request; no claim about stored prose or all reals.'}\n\nfrom itertools import product, permutations, combinations\nfrom math import isqrt\nfrom pathlib import Path\nimport argparse\nOQ=339949771344778\nOS=10**15\nOD=25*OS\nOH=4948372000\nOPIN='40bc6a1d52efab3d75cf343e65ac06b314f9c9c375fc02bf6d45bf6bb21f9529'\nclass BudgetExceeded(RuntimeError):pass\ndef owire(x):\n    if type(x)is int:return str(x)\n    if type(x)is list:return [owire(v)for v in x]\n    if type(x)is dict:return {k:owire(v)for k,v in x.items()}\n    return x\ndef omv(A,v):return [sum(a*b for a,b in zip(r,v))for r in A]\ndef omm(A,B):return [[sum(a*B[j][k]for j,a in enumerate(r)if a)for k in range(len(B[0]))]for r in A]\ndef oti(A):return [list(r)for r in zip(*A)]\ndef oi(n,a=1):return [[a*int(i==j)for j in range(n)]for i in range(n)]\ndef ov(v):need(type(v)is list and len(v)==120 and all(type(x)is int for x in v),'OMEGA_VECTOR')\ndef obuild():\n    V=set()\n    for i in range(4):\n        for s in (-1,1):V.add(tuple((2*s,0)if j==i else(0,0)for j in range(4)))\n    for ss in product((-1,1),repeat=4):V.add(tuple((s,0)for s in ss))\n    even=[p for p in permutations(range(4))if sum(p[i]>p[j]for i in range(4)for j in range(i+1,4))%2==0]\n    for a,b,c in product((-1,1),repeat=3):\n        t=((0,0),(a,0),(0,b),(-c,c));V.update(tuple(t[i]for i in p)for p in even)\n    V=sorted(V);nb=[[]for _ in V]\n    for i,j in combinations(range(len(V)),2):\n        x=y=0\n        for (a,b),(c,d)in zip(V[i],V[j]):\n            u,w=a-c,b-d;x+=u*u+w*w;y+=2*u*w+w*w\n        if(x,y)==(8,-4):nb[i].append(j);nb[j].append(i)\n    fixture={'coordinate_rule':'vertex coordinate is (a+b*phi)/2 for pair [a,b]','neighbors':nb,'schema':'OMEGA_600CELL_GRAPH_FIXTURE/1','vertex_order':'Python lexicographic order of tuples of four integer pairs','vertices':[[list(p)for p in v]for v in V]}\n    need(hashlib.sha256(canonical(fixture)+b'\\n').hexdigest()==OPIN,'GRAPH_PIN')\n    need(len(V)==120 and all(len(r)==12 for r in nb),'GRAPH_DEGREE')\n    M=[[13 if i==j else int(j in nb[i])for j in range(120)]for i in range(120)]\n    C0=[[v[j][0]for j in range(4)]for v in V];C1=[[v[j][1]for j in range(4)]for v in V]\n    B=[[1]+u+w for u,w in zip(C0,C1)]\n    L=[[1]*120]+[[2*C0[i][j]+C1[i][j]for i in range(120)]for j in range(4)]+[[C0[i][j]+3*C1[i][j]for i in range(120)]for j in range(4)]\n    K=oi(9,0);K[0][0]=25\n    for j in range(4):K[j+1][j+1]=13;K[j+5][j+5]=19;K[j+1][j+5]=K[j+5][j+1]=6\n    p=[1]\n    for f in [[-x,1]for x in(10,11,13,16,25)]+[[211,-32,1],[205,-30,1]]:\n        z=[0]*(len(p)+len(f)-1)\n        for i,a in enumerate(p):\n            for j,b in enumerate(f):z[i+j]+=a*b\n        p=z\n    N=oi(120,p[-1])\n    for a in reversed(p[1:-1]):\n        N=omm(M,N)\n        for i in range(120):N[i][i]+=a\n    for i in range(120):\n        for j in range(120):\n            N[i][j],r=divmod(OH*N[i][j],-p[0]);need(r==0,'INVERSE_INTEGRAL')\n    return {'vertices_pairs':[[list(x)for x in r]for r in V],'neighbors':nb,'M':M,'C0':C0,'C1':C1,'B':B,'L_numerator':L,'K':K,'N':N}\ndef ominors(M):\n    A=[[M[i][j]-9*int(i==j)for j in range(120)]for i in range(120)];old=1;out=[]\n    for k in range(120):\n        pivot=A[k][k];need(pivot>0,'POSITIVE_MINOR');out.append(pivot)\n        for i in range(k+1,120):\n            for j in range(k+1,120):\n                A[i][j],r=divmod(A[i][j]*pivot-A[i][k]*A[k][j],old);need(r==0,'BAREISS_DIVISION')\n        old=pivot\n    return out\ndef ovalidate(c):\n    M,C0,C1,B,L,K,N=[c[k]for k in('M','C0','C1','B','L_numerator','K','N')]\n    need(M==oti(M)and all(sum(r)==25 for r in M),'REGULAR_SYMMETRIC')\n    for i in range(120):\n        x=y=0\n        for a,b in c['vertices_pairs'][i]:x+=a*a+b*b;y+=2*a*b+b*b\n        need((x,y)==(4,0),'UNIT_VERTEX')\n    for j in range(4):\n        u=[r[j]for r in C0];w=[r[j]for r in C1]\n        need(sum(u)==sum(w)==0,'CENTERED')\n        need(omv(M,u)==[13*a+6*b for a,b in zip(u,w)],'GOLDEN_MODE_0')\n        need(omv(M,w)==[6*a+19*b for a,b in zip(u,w)],'GOLDEN_MODE_1')\n    need(omm(oti(C0),C0)==oi(4,72)and omm(oti(C0),C1)==oi(4,-24)and omm(oti(C1),C1)==oi(4,48),'GRAM')\n    need(omm(L,B)==oi(9,120)and omm(M,B)==omm(B,K),'GEOMETRY_INVERSE_UPDATE')\n    need(omm(M,N)==oi(120,OH)and omm(N,M)==oi(120,OH),'NETWORK_INVERSE')\n    norm=max(sum(abs(x)for x in r)for r in N);need(norm==801320608,'INVERSE_NORM')\n    need(73*OQ<OD<74*OQ and 80*OQ>OD and F(73*norm,OH)<12 and F(OD*norm,OQ*OH)<12,'SEPARATION_BOUNDS')\n    return ominors(M)\ndef oforward(d,c):\n    ov(d);pairs=[divmod(OQ*z,OD)for z in omv(c['M'],d)]\n    return [a for a,b in pairs],[b for a,b in pairs]\ndef ofull(y,r,c):\n    ov(y);ov(r);need(all(0<=x<OD for x in r),'REMAINDER_RANGE');d=[]\n    for x in omv(c['N'],[OD*a+b for a,b in zip(y,r)]):\n        a,b=divmod(x,OQ*OH);need(b==0,'FULL_INTEGER');d.append(a)\n    need(oforward(d,c)==(y,r),'FULL_FORWARD');return d\ndef odecode(y,s,c,budget=100000):\n    ov(y);ov(s);need(all(0<=x<8 for x in s),'RESIDUE_RANGE');N=c['N'];den=2*OQ*OH;dom=[]\n    for row,r in zip(N,s):\n        center=OD*sum(a*(2*b+1)for a,b in zip(row,y));radius=OD*sum(abs(a)for a in row)\n        lo=-((-(center-radius))//den);hi=(center+radius)//den\n        vals=list(range(lo+(r-lo)%8,hi+1,8));need(len(vals)<=2,'CANDIDATE_CAP');dom.append(vals)\n    a=[-((-OD*v)//OQ)for v in y];b=[-((-OD*(v+1))//OQ)-1 for v in y];nodes=0\n    rows=[[(i,13)]+[(j,1)for j in ns]for i,ns in enumerate(c['neighbors'])]\n    def search(ds):\n        nonlocal nodes\n        nodes+=1\n        if nodes>budget:raise BudgetExceeded('UNRESOLVED: node budget')\n        if any(not v for v in ds):return None\n        changed=True\n        while changed:\n            changed=False\n            for i,row in enumerate(rows):\n                mn=sum(w*ds[j][0]for j,w in row);mx=sum(w*ds[j][-1]for j,w in row)\n                if mn>b[i]or mx<a[i]:return None\n                for j,w in row:\n                    if len(ds[j])<2:continue\n                    old=ds[j];otherlo=mn-w*old[0];otherhi=mx-w*old[-1]\n                    vv=[v for v in old if otherlo+w*v<=b[i]and otherhi+w*v>=a[i]]\n                    if not vv:return None\n                    if vv!=old:ds[j]=vv;changed=True\n        free=[j for j,v in enumerate(ds)if len(v)>1]\n        if not free:\n            d=[v[0]for v in ds];need(oforward(d,c)[0]==y,'MOD8_FORWARD');return d\n        j=free[0]\n        for v in ds[j]:\n            dd=[r[:]for r in ds];dd[j]=[v];ans=search(dd)\n            if ans is not None:return ans\n        return None\n    d=search(dom)\n    need(d is not None,'NO_PREDECESSOR');need([x%8 for x in d]==s,'DECODE_RESIDUES');return d\ndef olambda():\n    scale=10**40;r=isqrt(5*scale*scale);need(r*r<5*scale*scale<(r+1)**2,'SQRT_BOUND')\n    pl,pu=F(scale+r,2*scale),F(scale+r+1,2*scale)\n    def atan(n,m):\n        x=sum((F((-1)**k,(2*k+1)*n**(2*k+1))for k in range(m)),F(0));y=x+F((-1)**m,(2*m+1)*n**(2*m+1))\n        return min(x,y),max(x,y)\n    al,au=atan(5,48);bl,bu=atan(239,16);pil,piu=16*al-4*bu,16*au-4*bl\n    ll,lu=pl/(pl+piu),pu/(pu+pil)\n    need(F(OQ,OS)<ll<lu<F(OQ+1,OS)and 2*OQ+1<=2*OS*ll and 2*OS*lu<2*OQ+2,'LAMBDA_FLOORS')\n    return {'phi':[str(pl),str(pu)],'pi':[str(pil),str(piu)],'lambda':[str(ll),str(lu)],'input':str(2*OS),'q_floor':str(2*OQ),'lambda_floor':str(2*OQ+1)}\ndef oreplay():\n    c=obuild();minors=ovalidate(c);records=[]\n    us=[[0,1,0,0,0,0,0,0,0],[1,-3,2,-5,7,11,-13,17,-19],[10**12,-3,5,-7,11,-13,17,-19,23]]\n    for u in us:\n        d=omv(c['B'],u);y,r=oforward(d,c);s=[x%8 for x in d]\n        need(omv(c['L_numerator'],d)==[120*x for x in u],'PARAMETER_INVERSE')\n        need(ofull(y,r,c)==odecode(y,s,c)==d,'WITNESS_TRANSLATIONS')\n        records.append({'parameters':u,'input':d,'output':y,'r':r,'s':s})\n    states=[records[1]['input']];w=[];rem=[]\n    for k in range(6):\n        d=states[-1];y,r=oforward(d,c);w.append([x%8 for x in d]);rem.append(r);states.append(y)\n    back=states[-1]\n    for k in range(5,-1,-1):back=odecode(back,w[k],c);need(back==states[k],'HISTORY_STEP')\n    need(omv(c['L_numerator'],back)==[120*x for x in us[1]],'HISTORY_PARAMETERS')\n    for t in(-10**60,-128,-1,0,1,128,10**60):\n        y,r=oforward([t]*120,c);a,b=divmod(OQ*t,OS);need(y==[a]*120 and r==[25*b]*120,'SCALAR_LEDGER')\n    yy=records[0]['output'];need(omv(c['B'],omv(c['L_numerator'],yy))!=[120*x for x in yy],'NONCLOSURE_EXAMPLE')\n    yy,_=oforward([100]+[0]*119,c);need(F(sum(yy),120)==F(29,120)and OQ*100//(OS*120)==0,'MEAN_COUNTEREXAMPLE')\n    rejected=[]\n    for key in('L_numerator','N'):\n        c[key][0][0]+=1\n        try:ovalidate(c)\n        except Rejected:rejected.append(key)\n        finally:c[key][0][0]-=1\n    need(len(rejected)==2,'CORRUPTION_CONTROLS')\n    try:odecode(records[0]['output'],records[0]['s'],c,budget=0)\n    except BudgetExceeded:pass\n    else:raise Rejected('BUDGET_STATUS')\n    fact={'graph_sha256':OPIN,'positive_minors':120,'geometric_examples':3,'history_steps':6,'scalar_examples':7,'corruptions_rejected':rejected,'budget_exhaustion':'UNRESOLVED','formal_proof_assistant_executed':False}\n    data={**c,'positive_leading_minors_M_minus_9I':minors,'examples':records,'history':{'states':states,'witnesses':w,'remainders':rem},'lambda_enclosure':olambda()}\n    return fact,data\ndef oroot(c):\n    keys=('vertices_pairs','neighbors','M','C0','C1','B','L_numerator','K','N','positive_leading_minors_M_minus_9I')\n    return hashlib.sha256(canonical(owire({k:c[k]for k in keys}))).hexdigest()\ndef omain():\n    ap=argparse.ArgumentParser();ap.add_argument('log',type=Path);ap.add_argument('--emit',type=Path);args=ap.parse_args()\n    raw=args.log.read_text(encoding='utf-8');need(len(raw)<25000,'LOG_SIZE');log=loads(raw)\n    need(log['name']=='treeOS_LOG'and log['contract']=='treeOS_LOG/OMEGA-SRSD/1.0','LOG_PROFILE')\n    need(log['kernel']['sha256']==hashlib.sha256(Path(__file__).read_bytes()).hexdigest(),'KERNEL_BINDING')\n    need((log['omega']['Q'],log['omega']['S'],log['omega']['D'],log['omega']['h'])==(str(OQ),str(OS),str(OD),str(OH)),'LOG_PARAMETERS')\n    for test in log['fixtures']:\n        try:ans=attest(test['request'],test.get('expected'))\n        except Rejected:need(test.get('expected_verdict')=='REJECTED','FIXTURE_REJECTION')\n        else:need(test.get('expected_verdict')!='REJECTED','FIXTURE_ACCEPTED')\n    fact,data=oreplay();need(oroot(data)==log['evidence']['matrix_root_sha256'],'MATRIX_ROOT')\n    if args.emit:\n        with args.emit.open('x',encoding='utf-8')as f:json.dump(owire(data),f,sort_keys=True,separators=(',',':'))\n    print(json.dumps({'verdict':'INSTANCE_CHECKED','profile':'TREEOS-OMEGA-120/1','log_characters':len(raw),'facts':fact,'matrix_root_sha256':oroot(data),'scope':'Finite replay only; universal deductions are written proofs.'},sort_keys=True))\nif __name__=='__main__':\n    try:omain()\n    except BudgetExceeded as e:print(json.dumps({'verdict':'UNRESOLVED','reason':str(e)}));raise SystemExit(2)\n    except Exception as e:print(json.dumps({'verdict':'REJECTED','reason':str(e)}));raise SystemExit(1)\n"},"fixtures":[{"request":{"op":"encode","s":["1/1","2/3"],"y":["-1/5","5/3"]},"expected":{"m":2,"s":["1/1","2/3"],"d":["-1","2"],"rho":["4/5","1/3"]}},{"request":{"op":"assert_text","text":"2 + 2 = 5","verified":true},"expected_verdict":"REJECTED"}],"evidence":{"method":"Included code regenerates and checks all finite data. Fixed structure, not arbitrary-data compression; no external artifact required.","matrix_root_sha256":"a6bfb755c12e57d493aedd43936ab10e96ceba5eea0ee2b01e289f72eed31423"},"use":["Save kernel.python verbatim as check.py.","Run: python3 check.py treeOS_LOG_OMEGA_Joining.json","Use --emit evidence.json for full matrices, determinants and examples as decimal strings; no overwrite."],"size":{"limit_exclusive":25000,"encoding":"ASCII JSON; UTF-8 bytes equal characters including final newline."}}
