Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 207 additions & 0 deletions research/bit-early-helper-queries/PROOF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Forward BIT helper queries at the source entrance

This file gives a source interface. It does not give a new kappa value.

Use the retained PR589/PR555 word at repository commit
`1ec1119972c9aefe42525172d07b332fcff81cb4`. The source is
[WORD.json.gz](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/bit/sources/pr589-regenerated/WORD.json.gz).
Its compressed SHA256 is
`e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f`.
The source has 111 X fields, 111 Y fields, and 439 independent helper fields.
Its nine owned center queries remain paid.

The rescheduling uses the entrance prologue from
[PR5388](https://github.com/CrocSwap/integer-mult-bounds/pull/5388), with its
[proof at commit 568717635d8d11175a80024c9c596e16f54b1ea4](https://github.com/CrocSwap/integer-mult-bounds/blob/568717635d8d11175a80024c9c596e16f54b1ea4/research/native-helper-query-bank/PROOF.md).
This BIT source needs no scalar first-departure basis change or helper
completion child.

## Exact source cuts

Every helper starts in frame zero. Before its first MOVE, it is never the
destination of an ADD. Earlier source instructions can read it. Thus every
first-departure row is exactly its original helper input. The scalar matrix
of all 439 such rows is the identity.

Of these first MOVEs, 286 have rank one. Each of the 111 port lines has between
two and five of them. The receipt gives all owners, event indices, frames,
and prior read counts. All helpers finish at the same full rank-eight frame.

Let P be the projector on one port line. Write Q=D_P, D=D_(I-P), and R=D_I.
The two earliest first-query helpers on that line give two independent Q
observations. Their final job is R=DQ. Select these two helpers at every port.
This gives 222 local observations with no input, output, or observation
normalizer. All other helpers keep their original jobs. A later global stage
requires the separate port-route extension below.

## Optional common-axis maps

The larger 286-query interface can use one common rank-one axis. For a source
root r, put u=r/2, so u has squared norm one. Let e be the first coordinate
vector. If u=e, set K=I. Otherwise set v=u-e and

K = I - 2 v v^T / (v^T v).

Then K is symmetric, K squared is I, and K e=u. For the head and tail address
coordinates, use the block map diag(K,K). This is in coordinates where the
fixed tail reversal has already been removed. Conjugation by that fixed
reversal gives the native convention.

For a projector A, the address matrix in these coordinates is

D_A = [[I-A, A], [A, I-A]].

Direct rational matrix products give

D_(u u^T) diag(K,K) = diag(K,K) D_(e e^T),
D_I diag(K,K) = diag(K,K) D_I.

Thus input map K, observation map K, and output map K give the common Q
observation and preserve the full R target. The checker verifies these exact
16-by-16 identities for all 111 source lines. It also compares every line with
the actual source first-frame basis. The maps are fixed address maps in the
retained common-cover contract. This check does not claim direct execution of
a dense address map on a smaller cover.

The direct two-per-port interface does not need these maps.

## Matching the actual global stage chart

The local identity R=Q D_(I-P) does not identify R with the fresh-stage helper
job Q D_B automatically. The retained global controller moves main data through
port-specific routes. A helper must also have an explicit route.

Use the actual 15-by-15 matrix rho from
[BIT-P3-NATIVE-BINDING.json](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/bit/BIT-P3-NATIVE-BINDING.json).
For each port, its old local projector L has rank eight and the fresh plane B
has rank seven. The source matrix satisfies

rho^2 = I,
rho P rho = P,
rho L rho = P+B.

Give a selected helper the input rho xi. Apply rho to its held observation
and to its final output. The resulting observation is Q xi, since rho fixes
P. The output is D_(P+B) xi = Q D_B xi. Thus it has the same Q and fresh D as
the main controller port. The source accepts these separately routed inputs
because its helper-to-main block is zero on all source columns.

The checker loads and hashes the actual binding. It checks all 111 matrices,
the three head identities, and the corresponding 30-by-30 native address
identities. The same matrices embed at every stage by placing B on that
stage's seven axes and fixing all other axes. This uses the retained fixed
right-route contract on one common future cover. No smaller cover is assumed.

For 222 selected helpers, a fresh-stage call adds 666 fixed cover-route maps:
one at each input, observation, and output. It adds no native child. The
222-cut source replay and all helper target ranks remain unchanged. The local
stage can omit these routes. A complete caller must pay ordinary movement for
the added maps.

## Rescheduling the existing child

For each selected helper, copy its entrance value into a fresh owned raw field.
Run its actual first rank-one MOVE on that raw field. Copy the result into a
fresh owned observation field. Apply the observation map only in the optional
common-axis variant. Keep the raw field for the source cut.

Then run the original source. Omit only the selected first MOVEs. At each
omitted event, the original helper still has its unchanged entrance value.
The raw field has exactly the value and frame that the child would produce.
Swap these whole fields and their frame tags. Clear the owned raw field. The
persistent source state is now exactly the original state after that child.
The source can continue with every later instruction unchanged.

Induction over the replacement cuts proves the whole source identity. In
particular, all reads in the initial Y prefix receive the correct original
helper values. No dirty persistent field is cleared. The old value left in
an owned raw field is a duplicate. The transformed persistent field retains
all its input information. Clear each owned observation after its last use.

For 222 selected queries, the extra work is 444 owned COPYs, 888 owned CLEARs,
222 whole-field SWAPs, and at most 444 extra owned fields. There is no new
paid child. The 286-query common-axis version uses 572 COPYs, 1144 CLEARs,
286 SWAPs, at most 572 owned fields, and 843 nonidentity head chart maps.
Ordinary field movement and storage still need a complete caller tariff.

## Forward source for both shear directions

At each port the original main entrance frames are P and zero. The exit
frames are I and I-P. Its scalar main map is (x,y) to (x,y+x). Therefore its
physical main block is

F = [[D, 0], [DQ, D]].

Let S swap the two external main fields. Then

S F S = [[D, DQ], [0, D]].

Since Q squared is I for BIT, this is the opposite shear direction with the
same Q. The swaps act only on the main fields. The helper prologue and every
helper output remain unchanged. This uses the forward physical source twice
with different main assignments. It does not use a reverse first-departure
claim.

The reverse-source census is different: it has 253 first rank-one helper
MOVEs, but every one of its 439 first-departure rows contains a main input.
The forward raw-helper argument does not establish a reverse helper bank.

## Changes to helper arguments before the source

At the end of the prologue, let a helper pair hold normalized inputs xi_h and
xi_k, observations Q xi_h and Q xi_k, and raw fields with the corresponding
native frames. To make the invertible change

xi_k += Q xi_h,

update its stored input, its observation, and its raw field. The observation
update is

Q xi_k += xi_h,

because Q squared is I. For two helpers on the same port and stage, the raw-field update adds the
stored input rho xi_h. No new native child is required. In the common-axis variant the raw update uses K_k xi_h.
All source inputs must be fixed before the original source begins.

The checker verifies this update on all 439 arbitrary helper columns for 111
disjoint pairs. It also runs the complete source and all 222 replacement cuts
on those changed inputs, keeping both I and Q coefficient columns. The source
then returns R times the changed helper vector.
This is a coupled output block. It is not the original independent helper
job list until a complete controller proves the required decoding. No helper
target may be credited twice or removed from the invoice.

## Checks and limits

Run from the repository root:

python3 -B research/bit-early-helper-queries/verify.py
python3 -O -B research/bit-early-helper-queries/verify.py

Both runs give `PASS_BIT_EARLY_HELPER_QUERIES` and the same exact report. They check all 661 persistent input columns, all owned input columns,
the complete source frames, all actual global port routes, both the 222- and
286-cut variants, the nine
original COPY lifetimes, and the full original paid profile:

1323 H1 + 1342 H2 + 79 H3 + 44 H4 + 102 H5 + 11 H6 + 19 H7.

The helper target profile stays 439 H8 in the interface without feedback.
The verifier rejects changed bytes in each of the four declared source inputs.
It also rejects a wrong held input, a wrong frame-tag swap, a dirty owned input,
an uncleared raw field, and an uncleared observation.

The exact rational address identities extend to each column multiplicity by
using K tensor I_f and P tensor I_f. The scalar owner program is unchanged.
Its sums are not tensor powered. The all-column source identity permits
arbitrary operator-valued helper inputs, so the stated pre-source feedback is
a valid substitution when every stored copy is updated.

No profitable caller, outer multiplication assembly, precision allocation,
full GL cover materialization, or native payload execution was run here. This
interface alone does not improve kappa.

The retained source and its
[attribution](https://github.com/CrocSwap/integer-mult-bounds/blob/1ec1119972c9aefe42525172d07b332fcff81cb4/research/kappa-rebuild/bit/README.md)
remain unchanged. The source credits eumemic, Anthropic Claude assistance, and
its cited predecessors. This BIT adaptation and checker have substantial
OpenAI Codex assistance.
120 changes: 120 additions & 0 deletions research/bit-early-helper-queries/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Early helper queries for the retained forward BIT source

This package proves a finite source interface. It exposes two original helper
queries at each of 111 ports before the retained forward word starts. It adds
no native child and binds the responses and outputs to all 111 actual port
routes. The complete kappa calculation does not improve: no profitable caller
or full ordinary-work tariff is supplied.

Read [the proof](PROOF.md) and [the exact result](RESULT.json). The source pins
are in [SOURCES.json](SOURCES.json). The publication base is
`32890bc5de034ab8fc93ac88ead7279a6a416d04`. The source was studied at
`1ec1119972c9aefe42525172d07b332fcff81cb4`; all four live inputs have the same
bytes at both commits. The selected record in the package metadata is only
historical provenance. No selected record or frozen predecessor is changed.

## What the interface gives

All 439 helper first-query rows equal their independent entrance inputs.
Of these first queries, 286 have rank one. Each port has at least two. Select
the two earliest at every port to obtain the direct 222-query interface.

For each selected helper, keep an owned copy of the raw first query and an
owned observation. Run the original source. At its original first-query cut,
swap the whole helper and raw fields, including their frame tags. Clear the
owned duplicate. Every original source column and subsequent scalar event
then has the original value and frame.

The actual port route rho fixes the port projector P and sends the local
rank-eight projector to P plus the fresh seven-plane B. Input, observation,
and output routes therefore give the response Q xi and final job Q D_B xi.
The proof checks the 15-by-15 head matrices and their 30-by-30 native address
matrices. It uses the retained fixed common-cover route contract.

| Interface | Early queries | Owned COPY | Owned CLEAR | Whole-field SWAP | Extra owned fields | Additional maps |
| --- | ---: | ---: | ---: | ---: | ---: | --- |
| Direct local ports | 222 | 444 | 888 | 222 | 444 | None |
| Direct ports at a fresh global stage | 222 | 444 | 888 | 222 | 444 | 666 fixed cover routes |
| Optional common-axis local variant | 286 | 572 | 1,144 | 286 | 572 | 843 nonidentity head chart maps |

These are different variants. The 286-query counts must not replace the
222-query counts. The optional common-axis row is a local interface; its 843
maps do not pay the 222-query fresh-stage routes.

The unchanged paid profile is

1323 H1 + 1342 H2 + 79 H3 + 44 H4 + 102 H5 + 11 H6 + 19 H7.

Without feedback, all 439 helper targets remain H8. The package also checks
111 disjoint pre-source feedback pairs. In BIT, Q squared is I, so the held
input, response, and raw field can all receive the exact paired update. The
source then returns a coupled helper block. A caller must decode that full
block before it can claim the original independent target list.

The reverse source has main-input contamination in all 439 first helper rows.
This package does not expose a reverse cold-helper bank. Swapping the two main
roles gives the opposite main shear with the same forward source.

## Reproduce

Use Python 3.12. The verifier uses only the standard library.

```sh
python3 -B research/bit-early-helper-queries/verify.py
python3 -O -B research/bit-early-helper-queries/verify.py
python3 -B scripts/research_package.py --package research/bit-early-helper-queries --check-only
python3 -B scripts/research_package.py --package research/bit-early-helper-queries
```

Expected verifier output:

```text
PASS_BIT_EARLY_HELPER_QUERIES queries=222 routes=111 source_controls=4 owned_controls=5 new_kappa=false
```

The complete replay checks 661 persistent input columns and 445 owned input
columns for the direct interface. It also checks the 286-cut variant, all
nine original COPY lifetimes, all 111 native routes, and the changed helper
arguments. Normal and optimized runs must give the same exact result.

The verifier rejects a byte mutation in each declared source, a wrong held
input, a wrong frame-tag swap, a dirty owned input, an uncleared raw field,
and an uncleared observation. It does not rerun a discovery search.

The direct verifier also works in the committed package export without Git.
The registered metadata checks use Git to resolve provenance. No native
payload, full GL cover, uniform compiler, ordinary precision or outer
multiplication assembly is executed by this package.

## Open next questions

[TASK.json](TASK.json) records the next questions. First give a literal caller
that uses the observations and closes every coupled helper output. This is
needed before any complete paid-versus-target claim. Then bind its common
cover and charge all route, movement, storage, and precision costs. A
profitable complete caller is the present blocker.

## Credit and related work

The retained forward word comes from
[PR #589](https://github.com/CrocSwap/integer-mult-bounds/pull/589) and
[PR #555](https://github.com/CrocSwap/integer-mult-bounds/pull/555). Their
[pinned source notice](https://github.com/CrocSwap/integer-mult-bounds/blob/32890bc5de034ab8fc93ac88ead7279a6a416d04/research/e8-bit-p111-tuned/NOTICE.md)
credits eumemic with substantial Anthropic Claude assistance and preserves
its earlier contributors. The
[tuned-source credit](https://github.com/CrocSwap/integer-mult-bounds/blob/32890bc5de034ab8fc93ac88ead7279a6a416d04/research/e8-bit-p111-tuned/tune/README.md)
records the transport changes. The
[retained BIT reconstruction](https://github.com/CrocSwap/integer-mult-bounds/blob/32890bc5de034ab8fc93ac88ead7279a6a416d04/research/kappa-rebuild/bit/README.md)
supplies the regenerated word and actual route binding used here.

The entrance prologue follows
[PR #5388](https://github.com/CrocSwap/integer-mult-bounds/pull/5388) and its
[pinned proof](https://github.com/CrocSwap/integer-mult-bounds/blob/568717635d8d11175a80024c9c596e16f54b1ea4/research/native-helper-query-bank/PROOF.md).
That proof is conceptual credit, not an executable dependency.
[PR #5421](https://github.com/CrocSwap/integer-mult-bounds/pull/5421) instead
uses nine owned BIT relations in the reverse word. This package preserves
arbitrary forward helper inputs and does not delete their target credits.

This BIT adaptation, route proof, checker, and package have substantial
OpenAI Codex assistance. New files are Apache-2.0. No predecessor file is
copied or changed by this package.
Loading