The batched counting oracle (digit lifting into tensor slots) solves the oracle task
ProvedLight.Batch.oracle_solvesProcedure pOracle (number 84) of the program oProg solves the counting oracle task Light.Filter2.oracleTask within oTimeF 3000000 n U s p steps with need oNeed.
The task: for an Exact Triangle instance (three weight matrices with entries bounded by ), a block size , a modulus and a place cnt, write the list cntList n s p AB BC AC of the counts at cnt: for the candidate , the number of in with ; no other cell below the free pointer changes.
oProg is base58B, the procedures of Section 4.4 for , , and the oracle's procedures 74-84 (tables of residues and digits, writeSrc, the queries, the top procedure). oTimeF A is explicit: plus, per batch, one preprocessing tPreCoreP and the queries.
“Procedure of program solves the task within steps with need ” (SolvesN) means: in every program that begins with , for every instance and every memory satisfying the task's precondition, and all limits (word size, cells, call depth) allowing of the instance's parameters, the call of with the instance's arguments ends within of the parameters steps and leaves a memory satisfying the postcondition.
/- Copyright (c) 2026 Anthropic, PBC. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. SPDX-License-Identifier: Apache-2.0 -/ -- Generated by skeleton subtraction from the ThreeSumApsp library at commit 3b45b374640a. import Definitions.Def_APSP2995561_Defs2 set_option autoImplicit false set_option relaxedAutoImplicit false open Light open Light.Batch open ThreeSumApsp ThreeSumApsp.Batch Light.Sec4 Light.Filter2
theorem Light.Batch.oracle_solves : SolvesN Light.Filter2.oracleTask oProg pOracle
(fun ps => oTimeF 3000000 (ps.getD 0 0) (ps.getD 1 0) (ps.getD 2 0) (ps.getD 3 0)) oNeed := by sorry