File size: 9,220 Bytes
7b61fa8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
#!/usr/bin/env python3
"""Exact Proposition 5.1 certificate for On Structured State-Space Duality.

This is not a reduced analogue.  It constructs a literal two-state,
non-diagonal linear SSM whose causal kernel is

    M = I_T + e_T e_1^T.

For a width-N 1-semiseparable masked-attention dual, the nonzero (T, 1)
entry forces every causal-mask transition on the path 1 -> T to be nonzero.
The leading (T-1)-by-(T-1) score block has every entry strictly below its
diagonal equal to zero and every diagonal entry nonzero.  It is therefore
upper triangular with rank T-1.  Taking N=2 and T>=4
contradicts rank(Q K^T) <= N.

All recurrence calculations use exact Python integers.  No tolerance, random
seed, fitted model, or source implementation is involved.
"""

from __future__ import annotations

import argparse
import csv
import hashlib
import json
from pathlib import Path


Matrix = list[list[int]]
Vector = list[int]


def matmul(left: Matrix, right: Matrix) -> Matrix:
    return [
        [sum(left[i][k] * right[k][j] for k in range(len(right)))
         for j in range(len(right[0]))]
        for i in range(len(left))
    ]


def matvec(matrix: Matrix, vector: Vector) -> Vector:
    return [sum(row[j] * vector[j] for j in range(len(vector))) for row in matrix]


def dot(left: Vector, right: Vector) -> int:
    return sum(x * y for x, y in zip(left, right, strict=True))


def build_parameters(length: int) -> tuple[list[Matrix], list[Vector], list[Vector]]:
    """Return an explicit non-diagonal rank-one SSM of state width two.

    We start from D=diag(1,0), then conjugate by
    S=[[1,1],[0,1]].  Thus every used transition is
    A=S D S^-1=[[1,-1],[0,0]], which is non-diagonal and rank one.
    Input/output vectors are transformed by b'=S b and c'=S^-T c.
    """
    if length < 4:
        raise ValueError("length must be at least 4 for T-1 > state width 2")

    transition = [[1, -1], [0, 0]]
    transitions = [[[1, 0], [0, 1]]] + [transition for _ in range(length - 1)]

    inputs = [[1, 0]] + [[1, 1] for _ in range(length - 1)]
    outputs = [[1, -1]]
    outputs += [[0, 1] for _ in range(length - 2)]
    outputs += [[1, 0]]
    return transitions, inputs, outputs


def recurrence_kernel(
    transitions: list[Matrix], inputs: list[Vector], outputs: list[Vector]
) -> Matrix:
    """Materialize M[t,s]=c_t^T A_t ... A_{s+1} b_s exactly."""
    length = len(inputs)
    kernel = [[0 for _ in range(length)] for _ in range(length)]
    for source in range(length):
        state = inputs[source]
        kernel[source][source] = dot(outputs[source], state)
        for target in range(source + 1, length):
            state = matvec(transitions[target], state)
            kernel[target][source] = dot(outputs[target], state)
    return kernel


def expected_kernel(length: int) -> Matrix:
    matrix = [[int(i == j) for j in range(length)] for i in range(length)]
    matrix[-1][0] = 1
    return matrix


def exact_rank(matrix: Matrix) -> int:
    """Fraction-free Gaussian elimination over the integers."""
    work = [row[:] for row in matrix]
    rows, columns = len(work), len(work[0])
    rank = 0
    for column in range(columns):
        pivot = next((r for r in range(rank, rows) if work[r][column] != 0), None)
        if pivot is None:
            continue
        work[rank], work[pivot] = work[pivot], work[rank]
        pivot_value = work[rank][column]
        for row in range(rank + 1, rows):
            if work[row][column] == 0:
                continue
            factor = work[row][column]
            work[row] = [
                pivot_value * work[row][j] - factor * work[rank][j]
                for j in range(columns)
            ]
        rank += 1
        if rank == rows:
            break
    return rank


def sha256(path: Path) -> str:
    digest = hashlib.sha256()
    with path.open("rb") as handle:
        for chunk in iter(lambda: handle.read(1 << 20), b""):
            digest.update(chunk)
    return digest.hexdigest()


def run_case(length: int) -> dict:
    transitions, inputs, outputs = build_parameters(length)
    observed = recurrence_kernel(transitions, inputs, outputs)
    expected = expected_kernel(length)
    exact_match = observed == expected

    transition = transitions[1]
    transition_rank = exact_rank(transition)
    transition_is_non_diagonal = transition[0][1] != 0 or transition[1][0] != 0
    off_target_nonzero = sum(
        int(observed[i][j] != 0 and not (i == j or (i == length - 1 and j == 0)))
        for i in range(length)
        for j in range(length)
    )

    state_width = 2
    required_score_rank = length - 1
    contradiction_margin = required_score_rank - state_width
    impossible = exact_match and required_score_rank > state_width

    # Destructive control: remove the wraparound entry.  I_T then has an
    # explicit width-one dual: L=I (zero transition factors), Q=K=1.
    control_kernel = [[int(i == j) for j in range(length)] for i in range(length)]
    control_mask = [[int(i == j) for j in range(length)] for i in range(length)]
    control_scores = [[1 for _ in range(length)] for _ in range(length)]
    control_product = [
        [control_mask[i][j] * control_scores[i][j] for j in range(length)]
        for i in range(length)
    ]

    return {
        "T": length,
        "state_width_N": state_width,
        "transition_matrix": transition,
        "transition_exact_rank": transition_rank,
        "transition_is_non_diagonal": transition_is_non_diagonal,
        "kernel_exactly_I_plus_eT_e1T": exact_match,
        "off_target_nonzero_entries": off_target_nonzero,
        "required_attention_score_rank_lower_bound": required_score_rank,
        "attention_score_rank_upper_bound": state_width,
        "rank_contradiction_margin": contradiction_margin,
        "width_N_1SS_attention_dual_impossible": impossible,
        "destructive_control_I_has_width_1_dual": control_product == control_kernel,
    }


def main() -> None:
    parser = argparse.ArgumentParser()
    parser.add_argument("--output-dir", type=Path, required=True)
    args = parser.parse_args()
    args.output_dir.mkdir(parents=True, exist_ok=True)

    lengths = [4, 8, 16, 32, 64]
    cases = [run_case(length) for length in lengths]
    result = {
        "schema_version": 1,
        "paper_id": "DKathyl3XN",
        "paper_arxiv": "2510.04944v1",
        "registered_claim_index": 5,
        "source_location": "Section 5, Proposition 5.1, pages 15-16",
        "object": "literal two-state non-diagonal SSM and width-matched 1-SS masked-attention dual",
        "arithmetic": "exact Python integers",
        "proof_certificate": {
            "kernel": "M = I_T + e_T e_1^T",
            "path_argument": "M[T,1] != 0 forces every 1-SS mask factor a_2,...,a_T to be nonzero",
            "minor_argument": "the leading (T-1)x(T-1) score minor is upper triangular with nonzero diagonal",
            "rank_lower_bound": "rank(QK^T) >= T-1",
            "rank_upper_bound": "rank(QK^T) <= N",
            "contradiction": "T-1 > N for N=2 and every tested T>=4",
        },
        "cases": cases,
        "all_literal_kernels_exact": all(c["kernel_exactly_I_plus_eT_e1T"] for c in cases),
        "all_transitions_non_diagonal_rank_one": all(
            c["transition_is_non_diagonal"] and c["transition_exact_rank"] == 1
            for c in cases
        ),
        "all_width_matched_duals_ruled_out": all(
            c["width_N_1SS_attention_dual_impossible"] for c in cases
        ),
        "all_destructive_controls_pass": all(
            c["destructive_control_I_has_width_1_dual"] for c in cases
        ),
    }

    json_path = args.output_dir / "claim5_non_diagonal_witness_results.json"
    json_path.write_text(json.dumps(result, indent=2, sort_keys=True) + "\n")

    csv_path = args.output_dir / "claim5_non_diagonal_witness_cases.csv"
    with csv_path.open("w", newline="") as handle:
        fields = [
            "T", "state_width_N", "transition_exact_rank",
            "transition_is_non_diagonal", "kernel_exactly_I_plus_eT_e1T",
            "off_target_nonzero_entries", "required_attention_score_rank_lower_bound",
            "attention_score_rank_upper_bound", "rank_contradiction_margin",
            "width_N_1SS_attention_dual_impossible",
            "destructive_control_I_has_width_1_dual",
        ]
        writer = csv.DictWriter(handle, fieldnames=fields)
        writer.writeheader()
        for case in cases:
            writer.writerow({key: case[key] for key in fields})

    manifest_path = args.output_dir / "OUTPUT_SHA256SUMS.txt"
    manifest_path.write_text(
        "".join(f"{sha256(path)}  {path.name}\n" for path in (csv_path, json_path))
    )

    print(json.dumps({
        "all_literal_kernels_exact": result["all_literal_kernels_exact"],
        "all_transitions_non_diagonal_rank_one": result["all_transitions_non_diagonal_rank_one"],
        "all_width_matched_duals_ruled_out": result["all_width_matched_duals_ruled_out"],
        "all_destructive_controls_pass": result["all_destructive_controls_pass"],
        "output_manifest_sha256": sha256(manifest_path),
    }, sort_keys=True))


if __name__ == "__main__":
    main()