Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
201 commits
Select commit Hold shift + click to select a range
c331950
feat(circuit/frontier): Boolean tensor networks and their contraction
SamuelSchlesinger Oct 30, 2026
ae63897
feat(circuit/frontier): deformed contraction and the Cauchy kernel
SamuelSchlesinger Oct 30, 2026
b06c211
refactor(circuit/frontier): index explicit tables by BitString.lsbValue
SamuelSchlesinger Oct 30, 2026
6c76726
Merge claude/boolean-tensor-networks (#1844 review fix) into the T2.1…
SamuelSchlesinger Oct 30, 2026
fa3aa4a
feat(foundations): Galois rings, ring Lagrange interpolation and the …
SamuelSchlesinger Oct 30, 2026
31ff8a6
feat(circuit/frontier): Lemma D.4, integral local coordinates of the …
SamuelSchlesinger Oct 30, 2026
3d38310
refactor(foundations): move integer valuation bounds to RatValuation
SamuelSchlesinger Oct 30, 2026
adeeddc
feat(circuit/frontier): mode expansion and the child identity (D.16)
SamuelSchlesinger Oct 30, 2026
6e6afdd
Merge remote-tracking branch 'origin/claude/t2-integral-coordinates' …
SamuelSchlesinger Oct 30, 2026
05c80d0
feat(circuit/frontier): modes of the Cauchy matrix, the geometric exp…
SamuelSchlesinger Oct 30, 2026
5597d92
Merge remote-tracking branch 'origin/claude/t2-cauchy-modes' into cla…
SamuelSchlesinger Oct 31, 2026
f6826a6
feat(circuit/frontier): local deformation and finite-precision tapere…
SamuelSchlesinger Oct 31, 2026
b78b6dd
Merge remote-tracking branch 'origin/claude/t2-galois-ring' into clau…
SamuelSchlesinger Oct 31, 2026
f934946
refactor(foundations): move AdjoinRoot coefficient reduction to its o…
SamuelSchlesinger Oct 31, 2026
5189108
doc(foundations): scope GaloisRing to the manuscript's base ring O/(2^n)
SamuelSchlesinger Oct 31, 2026
1e12be9
feat(circuit/frontier): correctness of one active call, packing bridg…
SamuelSchlesinger Oct 31, 2026
8e24241
test: make the tapered recovery test module public
SamuelSchlesinger Oct 31, 2026
1fb800a
Merge branch 'claude/t2-local-recovery' into claude/t2-active-call
SamuelSchlesinger Oct 31, 2026
02ef13c
feat(GenericRAM/Native): depth-first stack recursion with native bounds
SamuelSchlesinger Oct 31, 2026
286ff75
Merge remote-tracking branch 'origin/main' into claude/t2-local-recovery
SamuelSchlesinger Oct 31, 2026
d9722cc
chore: merge main and regenerate Complexity.lean
SamuelSchlesinger Oct 31, 2026
0009156
Merge branch 'claude/t2-local-recovery' into claude/t2-active-call
SamuelSchlesinger Oct 31, 2026
99d9e0d
feat(PolyTime): arithmetic in (Z/2^p)[U]/(f) on coefficient lists
SamuelSchlesinger Oct 31, 2026
27d0311
doc(GenericRAM/Native): qualify the module path in the stack recursio…
SamuelSchlesinger Oct 31, 2026
70f4cd5
feat(PolyTime/Nat): the clock 2^(K n / sqrt(floor(log2 n))) in polyno…
SamuelSchlesinger Oct 31, 2026
b9caee5
feat(PolyTime): unit and powers in (Z/2^p)[U]/(f)
SamuelSchlesinger Oct 31, 2026
bed24be
Merge remote-tracking branch 'origin/claude/t2-galois-ring' into clau…
SamuelSchlesinger Oct 31, 2026
dc4824e
feat(PolyTime): negation, subtraction and Newton inversion in (Z/2^p)…
SamuelSchlesinger Oct 31, 2026
164f4b2
Merge remote-tracking branch 'origin/main' into claude/t2-native-recu…
SamuelSchlesinger Oct 31, 2026
f9bcc51
Merge origin/main into claude/t2-cauchy-modes
SamuelSchlesinger Oct 31, 2026
c10db7a
chore: refresh Galois ring prerequisites on main
SamuelSchlesinger Oct 31, 2026
5312093
refactor(circuit/frontier): packingGroup takes the edge ends directly
SamuelSchlesinger Oct 31, 2026
c64e111
feat(circuit/frontier): renaming and lifting tensor networks
SamuelSchlesinger Oct 31, 2026
55c7a8f
feat(foundations): digit lifts in Z_(p)[X]/(f) have unit differences
SamuelSchlesinger Oct 31, 2026
9d8168f
feat(circuit/frontier): the contraction recursion and its correctness…
SamuelSchlesinger Oct 31, 2026
bffa3cf
feat(foundations): count tuples of bounded weight by the partition ge…
SamuelSchlesinger Oct 31, 2026
bbfbba0
feat(circuit/frontier): children of an active call have at most M/16 …
SamuelSchlesinger Oct 31, 2026
5bea2c1
feat(PolyTime): polynomials over (Z/2^p)[U]/(f) and Lagrange interpol…
SamuelSchlesinger Oct 31, 2026
c2e5c59
feat(circuit/frontier): unfolding lemmas for an active call and a lea…
SamuelSchlesinger Oct 31, 2026
bafb62e
feat(circuit/frontier): parameter schedule of the contraction recursi…
SamuelSchlesinger Oct 31, 2026
5328bbe
feat(circuit/frontier): fields of the active-node splitting; expose o…
SamuelSchlesinger Oct 31, 2026
d9a7343
feat(circuit/frontier): mode count at a certified active call
SamuelSchlesinger Oct 31, 2026
79e1c82
Merge remote-tracking branch 'origin/claude/t2-native-recursion' into…
SamuelSchlesinger Oct 31, 2026
af73f5b
feat(circuit/frontier): the contraction recursion has 2^O(s/sqrt(log …
SamuelSchlesinger Oct 31, 2026
9526858
Merge remote-tracking branch 'origin/claude/t2-parameters' into claud…
SamuelSchlesinger Oct 31, 2026
5fef5d3
feat(circuit/frontier): run the recursion with the parameter schedule…
SamuelSchlesinger Oct 31, 2026
7926132
feat(circuit/frontier): direct summation over networks with described…
SamuelSchlesinger Oct 31, 2026
83ea444
Merge remote-tracking branch 'origin/claude/t2-galois-ring' into clau…
SamuelSchlesinger Oct 31, 2026
c1407c7
feat(PolyTime): Newton inversion inverts every unit of a Galois ring
SamuelSchlesinger Oct 31, 2026
0e0e060
Merge remote-tracking branch 'origin/claude/t2-galois-interp' into cl…
SamuelSchlesinger Oct 31, 2026
3bba7ad
Merge branch 'claude/t2-galois-inv' into claude/t2-native-recovery
SamuelSchlesinger Oct 31, 2026
bcc7b10
wip: native recovery definitions and constants
SamuelSchlesinger Oct 31, 2026
3685aba
feat(circuit/frontier): explicit packet entries of the child networks…
SamuelSchlesinger Oct 31, 2026
7999990
wip: reciprocal and multiplier correctness
SamuelSchlesinger Oct 31, 2026
3efcd6b
feat(circuit/frontier): native tapered recovery components (Lemma D.5)
SamuelSchlesinger Oct 31, 2026
4c076d5
feat(circuit/frontier): the local Cauchy kernel as a product of units…
SamuelSchlesinger Oct 31, 2026
c997e5f
Merge remote-tracking branch 'origin/claude/t2-galois-arith' into cla…
SamuelSchlesinger Oct 31, 2026
9dde334
feat(circuit/frontier): native recovery computes recoverFromValues mo…
SamuelSchlesinger Oct 31, 2026
36c9ae9
Merge origin/main into claude/t2-packet-entry
SamuelSchlesinger Oct 31, 2026
955f94a
feat(circuit/frontier): direct summation over described networks with…
SamuelSchlesinger Oct 31, 2026
67d77cc
Merge remote-tracking branch 'origin/main' into claude/t2-described-g…
SamuelSchlesinger Oct 31, 2026
9e5bd2b
Merge origin/main into claude/t2-described-leaf
SamuelSchlesinger Oct 31, 2026
5280f8c
feat(circuit/frontier): native recovery is polynomial-time
SamuelSchlesinger Oct 31, 2026
87ee708
Merge remote-tracking branch 'origin/main' into claude/t2-packet-eval…
SamuelSchlesinger Oct 31, 2026
62dc6f5
feat(circuit/frontier): evaluate packet entries on coefficient lists …
SamuelSchlesinger Oct 31, 2026
6f54c2d
fix(circuit/frontier): terminal rewrites in twoVal_eq
SamuelSchlesinger Oct 31, 2026
04fe069
refactor(circuit/frontier): packet modes by dense index y0 * nb + b
SamuelSchlesinger Oct 31, 2026
3615494
Merge remote-tracking branch 'origin/claude/t2-described-galois' into…
SamuelSchlesinger Oct 31, 2026
b1ee3e5
feat(circuit/frontier): the value table of native recovery
SamuelSchlesinger Oct 31, 2026
2bfdbb3
feat(PolyTime): the kernel of reduction A_N → A_n is 2^n A_N
SamuelSchlesinger Oct 31, 2026
5317b59
feat(circuit/frontier): coefficient extraction as a stack recursion
SamuelSchlesinger Oct 31, 2026
3130c30
refactor(circuit/frontier): take the number of slots L as a parameter…
SamuelSchlesinger Oct 31, 2026
44c05e5
Merge branch 'claude/t2-packet-evaluator' into claude/t2-coeff-scheme
SamuelSchlesinger Oct 31, 2026
1454915
fix(circuit/frontier): mode terms vanish when a packet has no exponents
SamuelSchlesinger Oct 31, 2026
7aed491
Merge branch 'claude/t2-packet-evaluator' into claude/t2-coeff-scheme
SamuelSchlesinger Oct 31, 2026
f3be9f4
feat(combinatorics): enumerate the tuples of bounded weight with a su…
SamuelSchlesinger Oct 31, 2026
bd3e539
feat(PolyTime): the successor of a tuple of bounded weight in polynom…
SamuelSchlesinger Oct 31, 2026
fb6f83d
feat(circuit/frontier): the native packet evaluator in time exp(O(L l…
SamuelSchlesinger Oct 31, 2026
e03f0ce
feat(circuit/frontier): descriptors of packet vertices and their nati…
SamuelSchlesinger Oct 31, 2026
8e9725b
Merge remote-tracking branch 'origin/main' into claude/t2-packet-eval…
SamuelSchlesinger Oct 31, 2026
5736072
chore: regenerate Complexity.lean after merging main
SamuelSchlesinger Oct 31, 2026
1b2f892
Merge branch 'claude/t2-packet-evaluator' into claude/t2-coeff-scheme
SamuelSchlesinger Oct 31, 2026
74a464e
chore: regenerate Complexity.lean after merging the base
SamuelSchlesinger Oct 31, 2026
0e967bc
Merge branch 'claude/t2-coeff-scheme' into claude/t2-packet-terms
SamuelSchlesinger Oct 31, 2026
4f29528
feat(circuit/frontier): the cursor over the children of an active call
SamuelSchlesinger Oct 31, 2026
af142d1
refactor(combinatorics): count the feasible coordinate values with Ma…
SamuelSchlesinger Oct 31, 2026
92a90ac
Merge branch 'claude/t2-budget-tuples' into claude/t2-child-cursor
SamuelSchlesinger Oct 31, 2026
8daeef7
feat(circuit/frontier): the values a call stores along the cursor
SamuelSchlesinger Oct 31, 2026
207d29d
feat(circuit/frontier): the stored values are the sums over the mode …
SamuelSchlesinger Oct 31, 2026
956e30a
feat(circuit/frontier): vertex descriptors and the entries of native …
SamuelSchlesinger Oct 31, 2026
dec0329
Merge remote-tracking branch 'origin/main' into claude/t2-native-child
SamuelSchlesinger Oct 31, 2026
a82e654
Merge remote-tracking branch 'origin/main' into claude/t2-instance
SamuelSchlesinger Oct 31, 2026
dd7ddec
Merge remote-tracking branch 'origin/claude/t2-child-cursor' into cla…
SamuelSchlesinger Oct 31, 2026
6c7d419
Merge remote-tracking branch 'origin/claude/t2-recovery-store' into c…
SamuelSchlesinger Oct 31, 2026
7e456fc
Merge remote-tracking branch 'origin/claude/t2-schedule-count' into c…
SamuelSchlesinger Oct 31, 2026
0da975a
chore: regenerate Complexity.lean after merges
SamuelSchlesinger Oct 31, 2026
1f4a846
Merge origin/main into claude/t2-schedule-count
SamuelSchlesinger Oct 31, 2026
ef0982e
refactor(circuit/frontier): share the port/descriptor record between …
SamuelSchlesinger Oct 31, 2026
d18d15f
test(circuit/frontier): name IsRowsFirstBipartite explicitly on an an…
SamuelSchlesinger Oct 31, 2026
88ddd69
refactor(circuit/frontier): number packet modes with Mathlib's finPro…
SamuelSchlesinger Oct 31, 2026
3b4d836
Merge origin/main into claude/t2-child-cursor
SamuelSchlesinger Oct 31, 2026
bd4bf8e
Merge branch 'claude/t2-packet-evaluator' into claude/t2-coeff-scheme
SamuelSchlesinger Oct 31, 2026
21e70d1
Merge branch 'claude/t2-described-galois' into claude/t2-coeff-scheme
SamuelSchlesinger Oct 31, 2026
bd6a6a6
feat(GenericRAM/Native): derivations of stack recursions from recursi…
SamuelSchlesinger Oct 31, 2026
9bc99e7
Merge branch 'claude/t2-coeff-scheme' into claude/t2-packet-terms
SamuelSchlesinger Oct 31, 2026
9f36eb7
Merge branch 'claude/t2-stack-tree' into claude/t2-instance
SamuelSchlesinger Oct 31, 2026
30bb409
refactor(circuit/frontier): read packet exponents at finProdFinEquiv …
SamuelSchlesinger Oct 31, 2026
1268016
Merge branch 'claude/t2-packet-terms' into claude/t2-assembly
SamuelSchlesinger Oct 31, 2026
a74e6d0
refactor(circuit/frontier): read packet exponents at finProdFinEquiv …
SamuelSchlesinger Oct 31, 2026
1d440fa
feat(GenericRAM/Native): derivations by well-founded recursion; Descr…
SamuelSchlesinger Oct 31, 2026
df3a3bf
Merge remote-tracking branch 'origin/main' into claude/t2-instance
SamuelSchlesinger Oct 31, 2026
149edec
Merge remote-tracking branch 'origin/claude/t2-child-cursor' into cla…
SamuelSchlesinger Oct 31, 2026
f7de400
Merge remote-tracking branch 'origin/claude/t2-schedule-count' into c…
SamuelSchlesinger Oct 31, 2026
4bfc713
wip: described lift and native child (in progress)
SamuelSchlesinger Oct 31, 2026
77b3193
Merge remote-tracking branch 'origin/main' into claude/t2-native-child
SamuelSchlesinger Oct 31, 2026
b585eeb
Merge branch 'claude/t2-described-leaf' into claude/t2-described-galois
SamuelSchlesinger Oct 31, 2026
766fca0
Merge remote-tracking branch 'origin/main' into claude/t2-described-g…
SamuelSchlesinger Oct 31, 2026
cd930a8
Merge remote-tracking branch 'origin/main' into claude/t2-packet-eval…
SamuelSchlesinger Oct 31, 2026
f5bd48c
Merge branch 'claude/t2-packet-evaluator' into claude/t2-coeff-scheme
SamuelSchlesinger Oct 31, 2026
2689826
Merge branch 'claude/t2-described-galois' into claude/t2-coeff-scheme
SamuelSchlesinger Oct 31, 2026
470d392
feat(circuit/frontier): the native contraction recursion as a stack r…
SamuelSchlesinger Oct 31, 2026
69dc8fb
Merge branch 'claude/t2-coeff-scheme' into claude/t2-packet-terms
SamuelSchlesinger Oct 31, 2026
1e77f7d
Merge branch 'claude/t2-packet-terms' into claude/t2-assembly
SamuelSchlesinger Oct 31, 2026
babef77
chore: regenerate Complexity.lean after merging the base
SamuelSchlesinger Oct 31, 2026
e280400
feat(circuit/frontier): the native machine of the fast contraction al…
SamuelSchlesinger Oct 31, 2026
09b118e
Merge remote-tracking branch 'origin/claude/t2-assembly' into claude/…
SamuelSchlesinger Oct 31, 2026
3e3b6bf
Merge #1952's review fixes; adapt to ExplicitTensorNetwork = Describe…
SamuelSchlesinger Oct 31, 2026
5e15a84
feat(circuit/frontier): native child networks and their contraction (…
SamuelSchlesinger Oct 31, 2026
215d85d
feat(circuit/frontier): the call count with a constant explicit in C …
SamuelSchlesinger Oct 31, 2026
6888efe
feat(Classes/CountingSimulation): the guard of the fast contraction a…
SamuelSchlesinger Oct 31, 2026
4daaf46
feat(circuit/frontier): one native active call is correct when its st…
SamuelSchlesinger Oct 31, 2026
8855b0c
Merge remote-tracking branch 'origin/claude/t2-assembly' into claude/…
SamuelSchlesinger Oct 31, 2026
121d56d
chore: adapt to the shared described-network record and finProdFinEqu…
SamuelSchlesinger Oct 31, 2026
57709b8
test(circuit/frontier): native child on a tiny network
SamuelSchlesinger Oct 31, 2026
af0bb03
wip: fast machine resources scaffolding
SamuelSchlesinger Oct 31, 2026
9d3c390
feat(circuit/frontier): the native child is rows-first
SamuelSchlesinger Oct 31, 2026
d1ca4a0
style(circuit/frontier): wrap long lines and pin flexible simps in th…
SamuelSchlesinger Oct 31, 2026
211d01d
feat(Classes/CountingSimulation): the fast machine within the interfa…
SamuelSchlesinger Oct 31, 2026
455906c
feat(Classes/CountingSimulation): the contraction algorithm from the …
SamuelSchlesinger Oct 31, 2026
7b8cc9b
feat(circuit/frontier): the modulus is irreducible modulo 2; tests of…
SamuelSchlesinger Oct 31, 2026
63c56cc
feat(Classes/CountingSimulation): the guard of the fast algorithm is …
SamuelSchlesinger Oct 31, 2026
21b7ab8
feat(circuit/frontier): the values stored by an active call, at each …
SamuelSchlesinger Oct 31, 2026
c6c8f64
feat(circuit/frontier): an active call has at least 64^a edges
SamuelSchlesinger Oct 31, 2026
0275abb
Merge remote-tracking branch 'origin/claude/t2-native-child' into cla…
SamuelSchlesinger Oct 31, 2026
6668fe1
feat(circuit/frontier): the step of the native recursion is correct, …
SamuelSchlesinger Oct 31, 2026
a180db5
feat(Classes/CountingSimulation): the contraction algorithm from the …
SamuelSchlesinger Oct 31, 2026
8081ab9
feat(circuit/frontier): binary-digit points have lifts with unit diff…
SamuelSchlesinger Oct 31, 2026
5d0a92d
feat(circuit/frontier): the native child in polynomial time, and its …
SamuelSchlesinger Oct 31, 2026
0906c9c
refactor(circuit/frontier): one rows-first predicate on described net…
SamuelSchlesinger Oct 31, 2026
992a9ca
Merge #1973 (claude/t2-native-polytime) into claude/t2-analysis-a
SamuelSchlesinger Oct 31, 2026
8bd4f74
doc(circuit/frontier): keep the rows-first bullet's first line
SamuelSchlesinger Oct 31, 2026
408395f
doc(circuit/frontier): docstrings of the betaSlice lemmas
SamuelSchlesinger Oct 31, 2026
eed1c70
feat(circuit/frontier): derivations over the reached calls, and the n…
SamuelSchlesinger Oct 31, 2026
7964b4e
feat(circuit/frontier): the cost of a leaf of the fast contraction re…
SamuelSchlesinger Oct 31, 2026
7327607
Merge remote-tracking branch 'origin/claude/t2-native-polytime' into …
SamuelSchlesinger Oct 31, 2026
b9fafe2
Merge #1973 (claude/t2-native-polytime, 408395fdf) into claude/t2-ana…
SamuelSchlesinger Oct 31, 2026
54de285
feat(circuit/frontier): the native recursion follows the schedule
SamuelSchlesinger Oct 31, 2026
5f206b0
feat(circuit/frontier): the packet shape of the native recursion and …
SamuelSchlesinger Oct 31, 2026
419b9a2
feat(circuit/frontier): the call count of the native recursion on the…
SamuelSchlesinger Oct 31, 2026
9859855
feat(circuit/frontier): the leaf bound of the fast contraction analys…
SamuelSchlesinger Oct 31, 2026
8a66116
feat(Classes/CountingSimulation): the resource analysis of the native…
SamuelSchlesinger Oct 31, 2026
3afd339
style: wrap long lines
SamuelSchlesinger Oct 31, 2026
ba1e006
style: wrap a long line
SamuelSchlesinger Oct 31, 2026
2b77c75
Merge branch 'claude/t2-analysis-leaves' into claude/t2-leaves-glue
SamuelSchlesinger Oct 31, 2026
342c523
feat(Classes/CountingSimulation): the leaf bounds of the native recur…
SamuelSchlesinger Oct 31, 2026
ac56eab
test: the reached root of a guarded input has the packet shape
SamuelSchlesinger Oct 31, 2026
c972643
refactor(circuit/frontier): unfold nativeMk through one lemma; helper…
SamuelSchlesinger Oct 31, 2026
6ba1ca3
feat(circuit/frontier): the components of the native contraction recu…
SamuelSchlesinger Oct 31, 2026
0598212
feat(circuit/frontier): structural shapes of the calls of the native …
SamuelSchlesinger Oct 31, 2026
0051ec6
style: wrap a docstring
SamuelSchlesinger Oct 31, 2026
4ef2e74
refactor(circuit/frontier): unfold nativeMk once in packetShape_child
SamuelSchlesinger Oct 31, 2026
f55b279
Merge branch 'claude/t2-analysis-leaves' into claude/t2-leaves-glue
SamuelSchlesinger Oct 31, 2026
fac3d9a
feat(circuit/frontier): encoded lengths of calls and packet descriptors
SamuelSchlesinger Oct 31, 2026
c8655bc
feat(circuit/frontier): encoded lengths of values and frames
SamuelSchlesinger Oct 31, 2026
051817c
Merge #1982 (claude/t2-hpoly) into claude/t2-analysis-leaves-caps
SamuelSchlesinger Oct 31, 2026
7cda8e1
feat(circuit/frontier): the frames of an active call are polynomially…
SamuelSchlesinger Oct 31, 2026
f1ce1dc
refactor(circuit/frontier): packetShape_child through nativeMk_eq, fo…
SamuelSchlesinger Oct 31, 2026
40d120d
style: wrap long lines
SamuelSchlesinger Oct 31, 2026
9aabdcd
feat(circuit/frontier): the sizes of the calls, values and frames alo…
SamuelSchlesinger Oct 31, 2026
fb4271c
feat(Classes/CountingSimulation): polynomial sizes along the native r…
SamuelSchlesinger Oct 31, 2026
08ac4e7
feat(Classes/CountingSimulation): the facts at the reached calls for …
SamuelSchlesinger Oct 31, 2026
a06db75
test(circuit/frontier): checked instances of the resource analysis
SamuelSchlesinger Oct 31, 2026
37f2d1c
Merge claude/t2-leaves-glue (#1979 and the FastLeaves glue) into clau…
SamuelSchlesinger Oct 31, 2026
2474697
feat(Classes/CountingSimulation): the resource analysis of the native…
SamuelSchlesinger Oct 31, 2026
0450bd2
Merge #1967 (claude/t2-native-child) into claude/t2-native-polytime
SamuelSchlesinger Oct 31, 2026
27756a5
Merge #1973 (claude/t2-native-polytime) into claude/t2-instance
SamuelSchlesinger Oct 31, 2026
ad3df99
fix(Classes/CountingSimulation): unfold the unified rows-first predic…
SamuelSchlesinger Oct 31, 2026
1fa7791
doc(circuit/frontier): restore the exact quotation of the child edge …
SamuelSchlesinger Oct 31, 2026
d687098
Merge #1970 (claude/t2-instance) into claude/t2-analysis-leaves
SamuelSchlesinger Oct 31, 2026
f2ea672
Merge #1979 (claude/t2-analysis-leaves) into claude/t2-analysis-a
SamuelSchlesinger Oct 31, 2026
e17051b
refactor(circuit/frontier): the analysis through nativeMk_eq, for the…
SamuelSchlesinger Oct 31, 2026
e3fc496
Merge origin/main into claude/t2-fast-simulation
SamuelSchlesinger Oct 31, 2026
466873b
feat(Classes/CountingSimulation): the contraction algorithm of Theore…
SamuelSchlesinger Oct 31, 2026
1a45e96
feat(Classes/CountingSimulation): NTIME, BPTIME and PPTIME in time 2^…
SamuelSchlesinger Oct 31, 2026
7efa139
test(Classes/CountingSimulation): the containments at a proved polyno…
SamuelSchlesinger Oct 31, 2026
43f5dd2
Merge origin/main into claude/t2-instance
SamuelSchlesinger Oct 31, 2026
84cc5ef
Merge #1970 (claude/t2-instance) into claude/t2-analysis-a
SamuelSchlesinger Oct 31, 2026
b4a0bf9
Merge #1988 (claude/t2-analysis-a) into claude/t2-fast-simulation
SamuelSchlesinger Oct 31, 2026
9ce725a
Merge origin/main into claude/t2-analysis-a
SamuelSchlesinger Oct 31, 2026
42063a2
Merge #1988 (claude/t2-analysis-a) into claude/t2-fast-simulation
SamuelSchlesinger Oct 31, 2026
6f775f9
Merge origin/main into claude/t2-fast-simulation
SamuelSchlesinger Oct 31, 2026
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
1 change: 1 addition & 0 deletions Complexity.lean
Original file line number Diff line number Diff line change
Expand Up @@ -1149,6 +1149,7 @@ public import Complexity.Computability.Complexity.Classes.CountingSimulation.Con
public import Complexity.Computability.Complexity.Classes.CountingSimulation.FastAlgorithm
public import Complexity.Computability.Complexity.Classes.CountingSimulation.FastAnalysis
public import Complexity.Computability.Complexity.Classes.CountingSimulation.FastLeaves
public import Complexity.Computability.Complexity.Classes.CountingSimulation.FastSimulation
public import Complexity.Computability.Complexity.Classes.CountingSimulation.Guarded
public import Complexity.Computability.Complexity.Classes.CountingSimulation.Interfaces
public import Complexity.Computability.Complexity.Classes.DP
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ of the counting simulation (milestone H3 of #1833), so the conditional class con
`Complexity.Computability.Complexity.Classes.CountingSimulation.Containments` hold assuming only a
contraction algorithm. The joint time-and-space forms keep a single deciding machine within
time `2 ^ (C * T n / √⌊log₂ (T n)⌋)` and workspace `T n ^ d`, for a time-constructible
`T` with `max n 2 ≤ T n`. The contraction algorithm remains an explicit hypothesis; this
module does not prove the unconditional simulation.
`T` with `max n 2 ≤ T n`. The contraction algorithm remains an explicit hypothesis here;
`Cslib.Complexity.CountingSimulation.NTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two` and its
siblings discharge it with the contraction algorithm of Theorem D.1.

**The family.** At the input `x`, the clock `t` and the schedule number `σ`, the network
(`Cslib.Complexity.CountingSimulation.blockNetworkOf`) is the explicit block-counting network
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ The network hypothesis is discharged for explicit networks by
`Cslib.Complexity.CountingSimulation.networkFamilies_explicitAdmissible`, so the containments hold
assuming only a contraction algorithm
(`Cslib.Complexity.CountingSimulation.NTIME_subset_iUnion_DTIME_of_contractionAlgorithm` and its
siblings). The contraction algorithm of Theorem D.1 discharges that hypothesis too, which gives the
containments unconditionally
(`Cslib.Complexity.CountingSimulation.NTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two` and its
siblings).

## Main definitions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ by `FastContraction.wfChildren_nativeMk` and `FastContraction.packetShape_child`
* `Cslib.Complexity.CountingSimulation.fastLeaves`: the leaf bounds.
* `Cslib.Complexity.CountingSimulation.fastAnalysis_nativeMk_holds`: the resource analysis of the
native recursion.
* `Cslib.Complexity.CountingSimulation.fastContractionAlgorithm`: the contraction algorithm of
Theorem D.1 for admissible explicit networks.

## References

Expand Down Expand Up @@ -143,4 +145,13 @@ and, from some size on, its nodes fit in the clock. -/
theorem fastAnalysis_nativeMk_holds : FastAnalysis nativeMk :=
fastAnalysis_nativeMk fastLeaves

/-- **The contraction algorithm of Theorem D.1** for admissible explicit networks: the native
recursion behind a guard, with direct summation for the networks the guard rejects, in time
`poly(n) 2 ^ O(s / √⌊log₂ s⌋)` and polynomial space. -/
noncomputable def fastContractionAlgorithm :
ContractionAlgorithm (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encNat
ExplicitTensorNetwork.encExplicitNetwork)
(fun G => G.2.contraction) ExplicitAdmissible :=
contractionAlgorithmOfNative fastAnalysis_nativeMk_holds

end Cslib.Complexity.CountingSimulation
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/-
Copyright (c) 2026 Samuel Schlesinger. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Samuel Schlesinger
-/

module
-- upstream: candidate

public import Complexity.Computability.Complexity.Classes.CountingSimulation.BlockNetworks
public import Complexity.Computability.Complexity.Classes.CountingSimulation.FastLeaves

/-!
# Nondeterministic and probabilistic time in time `2 ^ O(T / √log T)` and polynomial space

The class containments of `Cslib.Complexity.CountingSimulation.BlockNetworks`, with the contraction
algorithm of Theorem D.1 of [OpenAI2026ETH] (`CountingSimulation.fastContractionAlgorithm`) in place
of their hypothesis. These are the containments of #1833: for time-constructible `T` with
`max n 2 ≤ T n`, every problem in `NTIME[T]`, `BPTIME[T]` or `PPTIME[T]` is decided by one
deterministic machine in time `2 ^ (C T n / √⌊log₂ (T n)⌋)` and workspace `T n ^ d`.

## Main results

* `Cslib.Complexity.CountingSimulation.NTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two`,
`BPTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two`,
`PPTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two`: the class containments.
* `exists_decidableInTimeAndSpace_two_pow_div_sqrt_log_two_of_mem_NTIME`,
`exists_decidableInTimeAndSpace_two_pow_div_sqrt_log_two_of_mem_BPTIME`,
`exists_decidableInTimeAndSpace_two_pow_div_sqrt_log_two_of_mem_PPTIME`: joint time and space.

## References

* [J. Hopcroft, W. Paul, L. Valiant, *On Time Versus Space*][HopcroftPaulValiant1977]
* [OpenAI, *The Exponential Time Hypothesis is False*][OpenAI2026ETH], Theorem D.1 (p. 53).
-/

public section

namespace Cslib.Complexity.CountingSimulation

open Turing.MultiTapeTM

variable {α : Type} {enc : α ↪ List Bool} {T : ℕ → ℕ}

/-- **Nondeterministic time `T` in time `2 ^ O(T / √log T)` and space `T ^ O(1)`.** -/
theorem exists_decidableInTimeAndSpace_two_pow_div_sqrt_log_two_of_mem_NTIME
(hT : TimeConstructible T) (hTn : ∀ n, max n 2 ≤ T n) {L : Set α} (hL : L ∈ NTIME enc T) :
∃ C d : ℕ, DecidableInTimeAndSpace L enc
(fun a => 2 ^ (C * T (enc a).length / Nat.sqrt (Nat.log 2 (T (enc a).length))))
(fun a => T (enc a).length ^ d) :=
exists_decidableInTimeAndSpace_of_mem_NTIME_of_contractionAlgorithm fastContractionAlgorithm hT
hTn hL

/-- **Bounded-error probabilistic time `T` in time `2 ^ O(T / √log T)` and space `T ^ O(1)`.** -/
theorem exists_decidableInTimeAndSpace_two_pow_div_sqrt_log_two_of_mem_BPTIME
(hT : TimeConstructible T) (hTn : ∀ n, max n 2 ≤ T n) {L : Set α} (hL : L ∈ BPTIME enc T) :
∃ C d : ℕ, DecidableInTimeAndSpace L enc
(fun a => 2 ^ (C * T (enc a).length / Nat.sqrt (Nat.log 2 (T (enc a).length))))
(fun a => T (enc a).length ^ d) :=
exists_decidableInTimeAndSpace_of_mem_BPTIME_of_contractionAlgorithm fastContractionAlgorithm hT
hTn hL

/-- **Strict-majority probabilistic time `T` in time `2 ^ O(T / √log T)` and space
`T ^ O(1)`.** -/
theorem exists_decidableInTimeAndSpace_two_pow_div_sqrt_log_two_of_mem_PPTIME
(hT : TimeConstructible T) (hTn : ∀ n, max n 2 ≤ T n) {L : Set α} (hL : L ∈ PPTIME enc T) :
∃ C d : ℕ, DecidableInTimeAndSpace L enc
(fun a => 2 ^ (C * T (enc a).length / Nat.sqrt (Nat.log 2 (T (enc a).length))))
(fun a => T (enc a).length ^ d) :=
exists_decidableInTimeAndSpace_of_mem_PPTIME_of_contractionAlgorithm fastContractionAlgorithm hT
hTn hL

/-- **`NTIME[T] ⊆ ⋃ C, DTIME[2 ^ (C T / √⌊log₂ T⌋)]`** for time-constructible `T` with
`max n 2 ≤ T n`. -/
theorem NTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two (hT : TimeConstructible T)
(hTn : ∀ n, max n 2 ≤ T n) :
NTIME enc T ⊆ ⋃ C, DTIME enc fun n => 2 ^ (C * T n / Nat.sqrt (Nat.log 2 (T n))) :=
NTIME_subset_iUnion_DTIME_of_contractionAlgorithm fastContractionAlgorithm hT hTn

/-- **`BPTIME[T] ⊆ ⋃ C, DTIME[2 ^ (C T / √⌊log₂ T⌋)]`** for time-constructible `T` with
`max n 2 ≤ T n`. -/
theorem BPTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two (hT : TimeConstructible T)
(hTn : ∀ n, max n 2 ≤ T n) :
BPTIME enc T ⊆ ⋃ C, DTIME enc fun n => 2 ^ (C * T n / Nat.sqrt (Nat.log 2 (T n))) :=
BPTIME_subset_iUnion_DTIME_of_contractionAlgorithm fastContractionAlgorithm hT hTn

/-- **`PPTIME[T] ⊆ ⋃ C, DTIME[2 ^ (C T / √⌊log₂ T⌋)]`** for time-constructible `T` with
`max n 2 ≤ T n`. -/
theorem PPTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two (hT : TimeConstructible T)
(hTn : ∀ n, max n 2 ≤ T n) :
PPTIME enc T ⊆ ⋃ C, DTIME enc fun n => 2 ^ (C * T n / Nat.sqrt (Nat.log 2 (T n))) :=
PPTIME_subset_iUnion_DTIME_of_contractionAlgorithm fastContractionAlgorithm hT hTn

end Cslib.Complexity.CountingSimulation
5 changes: 5 additions & 0 deletions ComplexityTests/FastLeaves.lean
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,9 @@ example (P : ℕ) (G : ℕ × ExplicitTensorNetwork ℕ) (x : Call)
-- The resource analysis of the native recursion holds, with no remaining hypothesis.
example : FastAnalysis nativeMk := fastAnalysis_nativeMk_holds

-- The contraction algorithm of Theorem D.1, with no remaining hypothesis.
noncomputable example : ContractionAlgorithm (Turing.MultiTapeTM.encPair Turing.MultiTapeTM.encNat
ExplicitTensorNetwork.encExplicitNetwork) (fun G => G.2.contraction) ExplicitAdmissible :=
fastContractionAlgorithm

end ComplexityTests.FastLeaves
52 changes: 52 additions & 0 deletions ComplexityTests/FastSimulation.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/-
Copyright (c) 2026 Samuel Schlesinger. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Samuel Schlesinger
-/

import Complexity.Computability.Complexity.Classes.CountingSimulation.FastSimulation
import Complexity.Computability.Complexity.Classes.Constructible.Log

/-! # Nondeterministic and probabilistic time in time `2 ^ O(T / √log T)`: checked instances

The class containments at the clock `T n = (n + 1) ^ 2 + 1`, which is time-constructible and at
least `max n 2`. -/

namespace ComplexityTests.FastSimulation

open Cslib.Complexity Cslib.Complexity.CountingSimulation Turing.MultiTapeTM

/-- The clock `(n + 1) ^ 2 + 1` is time-constructible. -/
theorem timeConstructible_succ_sq_add_one : TimeConstructible fun n => (n + 1) ^ 2 + 1 :=
timeConstructible_succ_sq.comp_of_computableInPolyTime (g := fun m => m + 1)
(ComputableInPolyTime.binary_add.comp
(ComputableInPolyTime.id'.prod (ComputableInPolyTime.const 1)))
fun _ => Nat.le_succ _

/-- The clock `(n + 1) ^ 2 + 1` is at least `max n 2`. -/
theorem max_le_succ_sq_add_one (n : ℕ) : max n 2 ≤ (n + 1) ^ 2 + 1 :=
max_le (by nlinarith) (by have := Nat.one_le_pow 2 (n + 1) (Nat.succ_pos n); omega)

example {α : Type} {enc : α ↪ List Bool} :
NTIME enc (fun n => (n + 1) ^ 2 + 1) ⊆ ⋃ C, DTIME enc fun n =>
2 ^ (C * ((n + 1) ^ 2 + 1) / Nat.sqrt (Nat.log 2 ((n + 1) ^ 2 + 1))) :=
NTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two timeConstructible_succ_sq_add_one
max_le_succ_sq_add_one

example {α : Type} {enc : α ↪ List Bool} :
BPTIME enc (fun n => (n + 1) ^ 2 + 1) ⊆ ⋃ C, DTIME enc fun n =>
2 ^ (C * ((n + 1) ^ 2 + 1) / Nat.sqrt (Nat.log 2 ((n + 1) ^ 2 + 1))) :=
BPTIME_subset_iUnion_DTIME_two_pow_div_sqrt_log_two timeConstructible_succ_sq_add_one
max_le_succ_sq_add_one

-- One machine within both bounds, for strict-majority time.
example {α : Type} {enc : α ↪ List Bool} {L : Set α}
(hL : L ∈ PPTIME enc fun n => (n + 1) ^ 2 + 1) :
∃ C d : ℕ, DecidableInTimeAndSpace L enc
(fun a => 2 ^ (C * (((enc a).length + 1) ^ 2 + 1) /
Nat.sqrt (Nat.log 2 (((enc a).length + 1) ^ 2 + 1))))
(fun a => (((enc a).length + 1) ^ 2 + 1) ^ d) :=
exists_decidableInTimeAndSpace_two_pow_div_sqrt_log_two_of_mem_PPTIME
timeConstructible_succ_sq_add_one max_le_succ_sq_add_one hL

end ComplexityTests.FastSimulation
Loading