The (min,+)-product in time from all-edges Exact Triangle in time
ProvedLight.Sec3.mp_solvedInLet be a time in which All-Edges Exact Triangle is solved (on vertices per part with weights of absolute value at most ), with for . Then there is a constant such that the -product of integer matrices with entries of absolute value at most is solved in time
The problems. All-Edges Exact Triangle: given , output for every pair whether some has . The -product: given stored in memory, write to the output area, changing no other cell below the free pointer. "Solved in time " refers to programs of the library's light language, which compiles to the word RAM: one program, with a polynomially bounded need, solves every instance with and bound within steps.
The reduction goes through the all-pairs problem: for every pair decide whether some has for a threshold matrix . Each such question reduces to all-edges Exact Triangle over the binary prefixes of the weights (with weights scaled by ), and the -product follows by binary search on every entry with all-pairs calls. This is Theorem 21(b) of Alman and Vassilevska Williams with the decision problem replaced by its all-edges version, so that no factor is lost.
Formalization Note The statement is SolvedIn aeTask T → (∀ n u, 1 ≤ n → (n:ℝ)^2 ≤ T n u) → ∃ C ≥ 0, SolvedIn mpTask (fun n u => C * (6000 * (T n (6 * (6 * u)) * logU (6 * u)) * logU u)), with logU v = log (max v 2).
/- 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 27a2fa4bab32. import Definitions.Def_APSP299791_Defs5 set_option autoImplicit false set_option relaxedAutoImplicit false open Light open Light.Sec3 open ThreeSumApsp ThreeSumApsp.WordRam
theorem Light.Sec3.mp_solvedIn {T : ℕ → ℝ → ℝ} (hT : SolvedIn aeTask T)
(hsq : ∀ (n : ℕ) (u : ℝ), 1 ≤ n → (n : ℝ) ^ 2 ≤ T n u) :
∃ C : ℝ, 0 ≤ C ∧ SolvedIn mpTask fun n u =>
C * (6000 * (T n (6 * (6 * u)) * logU (6 * u)) * logU u) := by sorry