Skip to content

Research: exact F3 minimum for the one-source additive connector - #4189

Merged
Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
hevlyo:research/f3-additive-connector-1x1
Oct 21, 2026
Merged

Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
hevlyo:research/f3-additive-connector-1x1

Conversation

@hevlyo

@hevlyo hevlyo commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

Result

Over F3, with arbitrary dirty x, y and z, every correct word in the additive alphabet {B: z += x, A: y += z} for the one-source one-output identity has length at least 6, and length 6 is attained by exactly six words.

Each B adds 1 to the x-coefficient of z. Each A adds 1 to the z0-coefficient of y because that coefficient of z stays 1. Both finals must be 0 mod 3, so each operator appears a multiple of three times. Exhaustion finds no correct word of length ≤ 5 and exactly the witnesses BBAABA, BABBAA, BAABAB, ABBAAB, ABABBA, AABABB. The F2 control BABA remains length 4 and fails over F3.

No new kappa. Claim: #4188.

Scope

Chooser seed 04cbf2cbcf13a1a4ea434b5ef3acf93b, card connector-alphabet-change, priority revision 7, base 12fa8c5c844be21bfefb38a19503fbd867a11244. Live alphabet extensions already cover arity-four events, joint outputs, high-arity toggles and the direct product call. This package keeps the same operators and changes only the characteristic-two premise that the starting universal-connector README already flags. The signed F3 connector of #1349 is a different interface.

Package: research/f3-additive-connector-1x1. Selected record SHA-256 bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129 is unchanged.

Evidence

python3.12 -B scripts/research_package.py --package research/f3-additive-connector-1x1

Expected marker: PASS_F3_ADDITIVE_CONNECTOR_1X1. Local Python 3.12 replay passed. The predecessor 945-pairing replay was not run in this partial checkout.

Limits

No five-source F3 batch, signed patterns, nonlinear readout or supplier admission. Substantial AI assistance; no independent human review claimed. Apache-2.0.

Open next question

For the five-source all-31-mask batch over F3 with the same alphabet, what is the exact optimum? The F2 figure is 74.

Over F3 every correct word needs multiples of three B and A calls, so length at least 6, and exactly six length-6 words attain it.
@rcfc-jreed

Copy link
Copy Markdown
Contributor

Independent F₃ exhaustion at 5fb3936d: no defect found

Code-disjoint re-enumeration (standard library only; does not import package verify.py), under this CLAIM.

Result (9/9 checks): Over F₃ with dirty x,y,z, words in {B: z+=x, A: y+=z} for the one-source identity need length ≥ 6. The mod-3 count bound gives #B ≡ #A ≡ 0 (mod 3), so shortest is 6. Exhaustion finds no correct word of length ≤ 5, and exactly the six length-6 witnesses BBAABA, BABBAA, BAABAB, ABBAAB, ABABBA, AABABB (each 3+3). F₂ control BABA passes over F₂ and fails over F₃.

This is a finite exhaustion, not a formal proof beyond F₃.

check_4189.py
#!/usr/bin/env python3
"""Independent F3 exhaustion for PR4189's one-source additive connector.

Does not import the package verify.py. Re-derives the mod-3 count bound and
re-enumerates all words of length ≤ 6 in {A,B}.

James Reed (@rcfc-jreed), with substantial AI assistance (Claude, in Cursor).
Apache-2.0.
"""
import argparse, itertools, json, subprocess, sys

HEAD = '5fb3936dfc8082f438f21c72dd6ca49ff4366ae7'
PKG = 'research/f3-additive-connector-1x1/'
WITNESSES = ('BBAABA', 'BABBAA', 'BAABAB', 'ABBAAB', 'ABABBA', 'AABABB')
results = []


def check(name, ok, detail=''):
    results.append((name, bool(ok), detail))
    print(('PASS ' if ok else 'FAIL ') + name + ((': ' + str(detail)) if detail else ''), flush=True)
    return bool(ok)


def run(word, mod):
    zx, zz, yx, yy, yz = 0, 1, 0, 1, 0
    for op in word:
        if op == 'B':
            zx = (zx + 1) % mod
        elif op == 'A':
            yx = (yx + zx) % mod
            yz = (yz + zz) % mod
        else:
            raise ValueError(op)
    return zx, zz, yx, yy, yz


def correct(word, mod):
    return run(word, mod) == (0, 1, 1, 1, 0)


def main():
    ap = argparse.ArgumentParser()
    ap.add_argument('--repo', required=True)
    a = ap.parse_args()
    head = subprocess.check_output(['git', '-C', a.repo, 'rev-parse', f'pr4189'], text=True).strip()
    check('I1 local pr4189 tip is 5fb3936d…', head.startswith('5fb3936d'))
    readme = subprocess.check_output(['git', '-C', a.repo, 'show', f'{HEAD}:{PKG}README.md'], text=True)
    lemma = ('Over F3, with arbitrary dirty x, y and z, every correct word in the '
             'additive alphabet {B, A} for the one-source one-output identity has '
             'length at least 6, and length 6 is attained by exactly six words.')
    check('I2 README still states the lemma', lemma in readme)

    check('C1 F2 control BABA is correct over F2', correct('BABA', 2))
    check('C2 BABA fails over F3', not correct('BABA', 3))
    # Each B adds 1 to zx; each A adds 1 to yz (zz stays 1). Both need 0 mod 3,
    # so #B ≡ 0 (mod 3) and #A ≡ 0 (mod 3); shortest is 3+3=6.
    check('B1 mod-3 count lower bound is 6',
          min(b + a for b in range(3, 12, 3) for a in range(3, 12, 3)) == 6)
    short = [''.join(w) for n in range(1, 6) for w in itertools.product('BA', repeat=n) if correct(''.join(w), 3)]
    check('E1 no correct F3 word of length ≤ 5', short == [], short)
    found = [''.join(w) for w in itertools.product('BA', repeat=6) if correct(''.join(w), 3)]
    check('E2 exactly the six listed length-6 witnesses', tuple(found) == WITNESSES, found)
    check('E3 each witness uses three B and three A',
          all(t.count('B') == 3 and t.count('A') == 3 for t in WITNESSES))
    # mutation: drop one letter from a witness
    check('C3 dropping one letter from BBAABA fails', not correct('BBAAB', 3) and not correct('BAABA', 3))
    ok = all(r[1] for r in results)
    print(('PASS' if ok else 'FAIL'), f'{sum(r[1] for r in results)}/{len(results)} checks', flush=True)
    sys.exit(0 if ok else 1)


if __name__ == '__main__':
    main()

James Reed (@rcfc-jreed), with substantial AI assistance (Claude, in Cursor).

@rcfc-jreed

Copy link
Copy Markdown
Contributor

Independent scoped audit of #4189 F3 one-source additive connector at 5fb3936d: 7/7

Code-disjoint package-local fork of verify.py. Head 5fb3936dfc8082f438f21c72dd6ca49ff4366ae7. CLAIM.

No packaging defect in SOURCES scope. All 3 digests match.

What passes: fork prints PASS_F3_ADDITIVE_CONNECTOR_1X1 (length-6 lower bound; exactly six witnesses).

Not covered here: Lean; new κ; merge/close.

Finite pin/seal/enumeration ≠ formal proof.

James Reed (@rcfc-jreed), with substantial AI assistance (Claude, in Cursor).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants