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
165 changes: 165 additions & 0 deletions research/raw-pencil-decomposition/PROOF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
# Raw finite-field pencil decomposition

Ali Romman, with substantial OpenAI Codex assistance. Apache-2.0.

## Claim and interface

Let K be a supplied finite field. For any two m by n matrices A and B over K,
the algorithm returns the full Kronecker block list and invertible matrices
R and Q such that A Q = R A0 and B Q = R B0. Thus the strict action is
(R^-1, Q); the slice map is the identity. Zero rows, zero columns, zero-index
blocks, dependent slices and the zero pencil are allowed. There is no need
for an invertible slice over K.

The output uses these models for s A0 + t B0:

- Right index e: e by e+1, A0 has a unit diagonal and B0 a unit superdiagonal.
- Left index e: the transpose of that right block.
- Finite primary (f,e): (companion(f^e), I), with monic irreducible f.
- Infinity of length e: (I, companion(x^e)).

The code gives a deterministic algorithm polynomial in m+n for each fixed K.
It uses field tables and exact row reduction. A coarse bound is
O_K((m+n+1)^10) field operations and O_K((m+n+1)^4) live field entries.
No bound polynomial in log(|K|), fast canonical-form bound, or numerical
stability claim is made. The executable shares the usual finite memory and
Python recursion limits. The written algorithm has no dimension bound.

This completes the raw-input boundary for the supplied-model character
interface. It does not compute the character formulas of that interface.
It does not prove a physical supplier, native map, route, restoration schedule,
precision bound, repeated preparation cost or complete kappa improvement.
The selected .00310045 result and its main-transform bottleneck are unchanged.

## 1. Shortest chains and singular blocks

A polynomial right kernel vector of degree e has coefficients v0,...,ve with
A v0=0, A vi+B v(i-1)=0 and B ve=0. Solve this homogeneous linear system in
increasing e. If a right block exists, the first nonzero solution occurs at
its least minimal index. Search through min(m,n-1); a right block of index e
uses e rows and e+1 columns, so this range is complete.

Use the classical Kronecker decomposition to justify the splitting step.
A shortest chain has zero component on every regular or left block, and on
every right block with larger index. There is no smaller right block. On each
right block with the least index, it is a scalar multiple of its generator:
a nonconstant multiplier would increase the degree. At least one scalar is
nonzero. A change among equal-index copies makes this chain one direct
summand. This also proves that its e+1 domain vectors and e image vectors
are independent. No search through all vectors of K^n is required.

Set ui=(-1)^i v(e-i), and wi=A ui for 0<=i<e. The chain equations give
A ui=wi and B u(i+1)=wi, with the two endpoint zeros. These are precisely the
stated right block. Let U and W contain these columns. Recover its complement
by the linear equations

```text
F U = I, G W = I, G A = Ablock F, G B = Bblock F.
```

A solution exists because the embedding splits. The bases [U,ker F] and
[W,ker G] put both coefficient matrices in block diagonal form. The code
checks this identity before it recurses. For index zero, W has zero columns
and G has zero rows; the same equations split an isolated zero column.

After all right blocks are removed, apply the same step to the transpose.
If At Qt=Rt Ct, then A Rt^-t=Qt^-t Ct^t. This gives the correct row and
column maps for each left block, including an isolated zero row. The residue
has no left or right polynomial kernel, hence is square and regular by
Kronecker theory. This reasoning credits that theorem; it is not a new proof
of its existence or uniqueness.

## 2. Infinity without a rational invertible slice

For the regular residue, start V0=0 and form V(i+1)={v:Bv is in A Vi}.
Each step is a nullspace of [B,-A Vi] followed by projection onto the v
coordinates. The increasing sequence stabilizes in at most n steps.

On a finite block (C,I), every Vi is zero. On an infinity block (I,N),
Vi=ker(N^i). Thus its limit is exactly the whole infinity space. A is
injective there and its image W has the same dimension. B V is in W.
Use W=A V to obtain the local pair (I,N), then solve the same linear
projection equations to split this direct summand. The residual B is
invertible. Normalize it to (B^-1 A,I). This proves the step even when each
of the q+1 rational directions gives a singular matrix. No scalar search
is used to select a global chart.

## 3. Finite-field factorization and primary cyclic summands

Find the minimal polynomial of T=B^-1 A from the first linear relation among
I,T,...,T^n. Factor it with the classical Berlekamp method. For a squarefree
polynomial f, the kernel of the q-power map minus the identity on K[x]/f
has one dimension per irreducible factor. Its elements have values in K
on each field factor. Successive gcds with b-c, for a basis b and all c in K,
separate all factors. The code checks the final number of factors against
that kernel dimension.

For non-squarefree f, recurse on gcd(f,f') and its quotient. If f'=0,
extract the p-th root of each coefficient with the inverse Frobenius power
q/p and multiply the returned multiplicities by p. Each call reduces the
degree. This includes extension fields and inseparable multiplicities.
The verification uses a separate bounded monic-divisor enumeration, in
addition to multiplying all factors back to the input polynomial.

For each irreducible f with maximal exponent e, take ker(f(T)^e). These
primary spaces have direct sum equal to the full space. On one primary space,
find its nilpotency length e and a basis vector v with f(T)^(e-1)v nonzero.
Its annihilator is exactly f^e. Its Krylov columns through degree deg(f)*e-1
are independent and give the stated companion block. A cyclic submodule of
maximal length in a direct sum of K[x]/f^j is a direct summand: a maximal
component of v is a unit modulo f, so elementary module changes make it a
generator in that component. Solve L U=I and L T=C L for its projection.
Its kernel is a T-invariant complement. Repeat. Apply the same procedure
with f=x to the infinity operator.

All these steps are exact linear algebra or polynomial arithmetic with
degrees bounded by m+n. The largest dense splitting system has O(N^2)
unknowns and equations, with N=m+n+1. The stated coarse polynomial bound
covers all degree searches, all splits, all primary steps and fixed-q
Berlekamp splitting. It does not assert that this dense implementation is
competitive with fast canonical-form algorithms.

## 4. Certificate and independent acceptance boundary

Both original equations A Q=R A0 and B Q=R B0 must hold and both maps must be
invertible. Classification also requires irreducible primary labels and the
complete block multiset; map equality alone would not justify a malformed
primary label. The algorithm obtains those labels by the factorization above.
The public `check` function checks maps to the requested model; it is not a
standalone proof that arbitrary caller-supplied labels are canonical.

The separate orbit oracle enumerates elementary invertible row and column
operations on every raw pencil in five complete domains. Elementary additions
and nonzero row/column scalings generate GL; swaps are products of these.
It checks that the block type is constant on each orbit and differs between
orbits. It does not use polynomial null chains, module decompositions or
factorization to build its orbits. Every raw input also has both coefficient
identities checked. Finite enumeration corroborates the algorithm; the
all-dimension claim uses the arguments above and the classical module theorem.

## Attribution and prior work

[Nick Petalas PR #5250](https://github.com/CrocSwap/integer-mult-bounds/pull/5250)
supplied the invertible-slice character formula and canonical-form reduction.
[apoursh PR #5672](https://github.com/CrocSwap/integer-mult-bounds/pull/5672)
supplied repeated singular blocks and explicit slice lifts.
[PR #5683](https://github.com/CrocSwap/integer-mult-bounds/pull/5683) and
[PR #5689](https://github.com/CrocSwap/integer-mult-bounds/pull/5689) supplied the
mixed singular and complete finite-field model character interfaces. They
explicitly leave raw decomposition separate. David Ganz's A030/A026/A029
atlas lineage supplies the broader tensor-orbit motivation.

The exact field and row-reduction module is retained from
[PR #5664 source](https://github.com/aliromman/integer-mult-bounds/blob/8f7773e700d468396cbf893dfb18bf3ae6c20f66/research/residue-product-tensor-recognition/vendor/local.py).
Its notice is unchanged. SOURCES.json pins its retained bytes. The remainder
of this package is new integration, proof of this implementation and checks.

Kronecker decomposition, primary module decomposition and Berlekamp
factorization are classical. See [P. Van Dooren, 1979](https://perso.uclouvain.be/paul.vandooren/publications/VDooren79.pdf)
for prior arbitrary-pencil extraction, and
[Berlekamp's polynomial-factorization account](https://math.berkeley.edu/~berlek/poly.html).
The preimage sequence is a Wong sequence; see
[The Quasi-Kronecker Form for Matrix Pencils](https://epubs.siam.org/doi/abs/10.1137/110826278).
We use their mathematical lineage, not their numerical implementations or
complexity bounds. No global literature priority, human independent review,
formal-kernel acceptance or new canonical-form theorem is claimed.
29 changes: 29 additions & 0 deletions research/raw-pencil-decomposition/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Raw finite-field pencil decomposition

This package extracts every singular and regular Kronecker block from two
arbitrary rectangular finite-field matrices. It returns exact row and column
maps and does not need an invertible base-field slice. It supplies the raw
input boundary left by the supplied-model character packages.

Read [PROOF.md](PROOF.md) for the algorithm, conventions, scope and credit.
Read [RESULT.json](RESULT.json) for exact evidence and [SOURCES.json](SOURCES.json)
for retained bytes. `decompose.decompose(A,B,m,n,field)` returns `(blocks,R,Q)`
with `A Q=R A0` and `B Q=R B0`. Field elements use the retained module's
base-p digit encoding. The slice map is the identity.

```sh
python3.12 -B scripts/research_package.py --package research/raw-pencil-decomposition
```

Expected: `PASS_RAW_PENCIL_DECOMPOSITION` and `PASS_REGISTERED_RESEARCH_PACKAGE`.
Python 3.12 and the standard library suffice. No physical supplier or new
kappa is claimed. The selected frontier is unchanged. Ali Romman with
substantial OpenAI Codex assistance; no subagents. Apache-2.0.

## Open next questions

Connect the extracted blocks and maps to the supplied-model characters in
PR5689, with an explicit convention check. For a physical candidate, price
all maps, storage, preparation, routes and restoration before a kappa claim.
The dense exact implementation is a reference algorithm; faster extraction
can use established canonical-form methods with the same certificate boundary.
56 changes: 56 additions & 0 deletions research/raw-pencil-decomposition/RESULT.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"coefficient_equations": 22812,
"complete_domains": [
{
"pencils": 256,
"q": 2,
"shape": [
2,
2
],
"strict_orbits": 16
},
{
"pencils": 6561,
"q": 3,
"shape": [
2,
2
],
"strict_orbits": 24
},
{
"pencils": 65536,
"q": 4,
"shape": [
2,
2
],
"strict_orbits": 34
},
{
"pencils": 4096,
"q": 2,
"shape": [
2,
3
],
"strict_orbits": 20
},
{
"pencils": 4096,
"q": 2,
"shape": [
3,
2
],
"strict_orbits": 20
}
],
"constructed": 96,
"factor_polynomials": 1776,
"failure_controls": 183,
"no_invertible_slice": 12,
"source_inputs": 1,
"status": "PASS_RAW_PENCIL_DECOMPOSITION"
}
25 changes: 25 additions & 0 deletions research/raw-pencil-decomposition/SOURCES.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"schema_version": 1,
"base_commit": "df0137efd35e11b4445734bf612bdd4c7ebc330c",
"files": [
{
"path": "certificates/selected-result.json",
"usage": "provenance",
"git_blob": "581f8d87008354eb5b869f7ed9de1317ad837ce8",
"sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5"
},
{
"path": "docs/research/agent-task-catalog.json",
"usage": "provenance",
"git_blob": "f126dd2e2dad2b669e75d1d0d0bd05c600725602",
"sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72"
},
{
"path": "research/raw-pencil-decomposition/field_source.py",
"usage": "input",
"git_blob": "1066bb74c19d180bfef7d9dd1c0650ec6bbd7780",
"sha256": "6daa160346d04691c6ca3c9c820b3df8982de4320ec01e5db10e3cb932f42c00",
"pin": "head:c5612cbefef23f70f305542b99ce161d985c953b:research/raw-pencil-decomposition/field_source.py"
}
]
}
64 changes: 64 additions & 0 deletions research/raw-pencil-decomposition/TASK.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"schema_version": 1,
"task_id": "bit-new-register-model",
"priority_revision": 7,
"base_commit": "df0137efd35e11b4445734bf612bdd4c7ebc330c",
"original_card": {
"id": "bit-new-register-model",
"question": "Can an explicitly larger or nonabelian register model escape the scoped three-register obstruction?",
"starting_points": [
"docs/research/research-family-status.md",
"research/bit-three-register-lower-bound/README.md",
"certificates/selected-result.json",
"research/bit-gl3-mixed-targets-length10/README.md",
"docs/research/community-efficient1000-review.md"
],
"methods": [
"Construct the smallest exact identity in a newly specified legal operation alphabet.",
"Derive a target-specific relaxation bound for that same explicit alphabet."
],
"acceptance_gate": "Name the changed hypothesis, all counted roles and a uniform identity; finite column tests alone do not certify it. 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",
"scripts/research_baseline.py"
],
"expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY",
"inspect": "Read Model section 1 of the three-register bound and identify the exact excluded free operations.",
"scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay."
},
"first_experiment": "First compare the alphabet, role count and length with the fully replayed #1974 census and #2027 mixed-root tariff. Identify a changed premise and a legal native implementation; then price one smallest completed instance before searching larger words.",
"bottleneck_link": "A small-width completed saving changes the bit primitive; a finite-address identity alone is insufficient.",
"allowed_variations": [
"Choose a fixed larger register count or a specified nonabelian operation family."
],
"scope_change_triggers": [
"Remaining inside the already-excluded three-register abelian model.",
"Repeating the two-register GL3 census or a covered three-register length without changing a hypothesis; a formal group-algebra word without native conversion is a partial result."
],
"overlap_terms": [
"three-register",
"nonabelian",
"group algebra"
]
},
"scope_status": "changed",
"actual_scope": "Complete raw finite-field rectangular matrix-pencil decomposition with explicit maps.",
"scope_change_reason": "The live tensor-atlas handoff leaves arbitrary-input extraction separate from the completed supplied-model characters.",
"bottleneck_link": "Provide canonical blocks and maps to evaluate two-slice tensor candidates; physical costs and the complete kappa bill remain open.",
"budget_minutes": 150,
"stop_rule": "Stop after full extraction proof and independent complete-domain map/type checks, or a counterexample.",
"outcome": "completed",
"evidence": "PROOF.md; RESULT.json; verify.py",
"author": "Ali Romman with substantial OpenAI Codex assistance",
"ai_assistance": "Substantial OpenAI Codex assistance; no subagents.",
"open_questions": [
{
"question": "Can a physical caller use an admissible raw pencil with a profitable complete bill?",
"why_it_matters": "Algebraic recognition alone does not improve kappa.",
"first_step": "Apply the supplied-model characters to these blocks and price every native map and route.",
"blocked_by": "No physical caller is supplied."
}
]
}
32 changes: 32 additions & 0 deletions research/raw-pencil-decomposition/VALIDATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Validation record

Python3.14 normal replay and Python3.12.14 registered normal replay pass.
A Python3.12.14 isolated optimized replay of the sealed science export also
passes with no Git checkout and empty PATH. Ten exported files retain their
exact bytes and read-only modes. An actual appended change to the retained
field source fails authentication before mathematical checks.

RESULT.json records 80545 raw pencils in five complete domains, 114 strict
orbits, 1776 polynomial factorization cases, 96 constructed pencils, 22812
constructed coefficient equations, 12 cases with no invertible rational slice
and 183 failure controls. Every exhaustive raw pencil also has both maps
checked. The independent GL orbit oracle covers all inputs in its stated
domains. Larger dimensions are constructed evidence, not exhaustive evidence.

The exact committed-byte and official export checks pass. The final export
adds this record and the corrected 600-second manifest cap; the mathematical
code and result are the sealed replay's bytes. Full-history ancestry preflight
is omitted in this shallow checkout. Immediate source ancestry, the original
remote field-source blob and all retained bytes were checked.

The final overlap refresh covers all 7678 local records, 376 open PRs and
5006 Discussion records with complete remote pagination, through
2026-10-26T05:53:29Z. Canonical main remains
`df0137efd35e11b4445734bf612bdd4c7ebc330c`. No competing raw decomposition
claim was found. This does not cover unpublished work or every historical diff.

The PR draft is checked with GitHub's Markdown renderer and its pinned file
targets before publication. The published body and rendered HTML must then
match that reviewed draft. Hosted CI, independent human review and proof-kernel
acceptance remain separate. No selected-frontier edit, merge or closure of
another contributor's work is part of this result.
20 changes: 20 additions & 0 deletions research/raw-pencil-decomposition/VERIFY.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"schema_version": 1,
"status": "ready",
"python": "3.12",
"requirements": [],
"inputs": [
"research/raw-pencil-decomposition/field_source.py"
],
"commands": [
{
"argv": [
"{python}",
"-B",
"{package}/verify.py"
],
"timeout_seconds": 600,
"checks": "Complete strict GL orbits, literal maps, factor divisor oracle, mixed primaries, infinity and failure controls."
}
]
}
Loading
Loading