WorksMathematics
The rank of 3×3 matrix multiplication over F2 is 23
Abstract
The rank of the tensor of matrix multiplication over the field with two elements is at most by Laderman's algorithm, and Rudich and Rousseau recently proved that it is at least . We prove that it equals . Hence Laderman's algorithm uses the fewest multiplications among all bilinear algorithms over and among all bilinear algorithms with integer coefficients. The proof uses the substitution method in the form developed by D'Ambrosio, Wang and Yang et al., which bounds the number of first factors of a decomposition that lie in a given subspace of the space of first factors. We sharpen these bounds for of Wang's classes of subspaces, constrain the ranks of the first factors through a flattening of the tensor, and list, up to symmetry, all sets of first factors that satisfy these constraints. An exact completion search shows that none of them is the set of first factors of a decomposition. The computation emits certificates, which are checked in the Lean 4 proof assistant. In one formal proof the largest checks are evaluated as compiled code, and in a second one the kernel evaluates every check, so that its final theorem depends only on the three standard axioms of Lean. The Lean proofs build on the formalization of Rudich and Rousseau and import their table of bounds and their reduction for block algorithms.
arXiv:2610.00548v1
Introduction
Let be the tensor of matrix multiplication. Its rank over a field is the smallest number of multiplications in a bilinear algorithm over that computes the product of two matrices [2 Ch. 14]. Laderman’s algorithm [15] uses 23 multiplications. It does not use commutativity and its coefficients are 0 and , so it works over any ring, and for all fields . For matrices the question was settled half a century ago: Strassen’s algorithm uses 7 multiplications [22], and Hopcroft and Kerr [11] and Winograd [26] proved that 7 are necessary. For matrices, however, the best lower bound valid over all fields is 19, due to Bläser [4], and whether Laderman’s 23 multiplications are necessary has been open since 1976.
Over the lower bound has risen several times in 2026. C. Wang proved with an automated method that splits the problem into 496 classes of subspaces [24], and Beuchert checked his certificate independently [3]. Wang [25] and, independently, Yang et al. [Yan26] then proved , and Yang et al. formalized their proof in Lean. Tahir independently obtained 21 conditionally on bounds from Wang’s table [23]. Rudich and Rousseau proved , also in Lean [21]. This left the question whether 22 multiplications suffice over , and we show that they do not.
Theorem 1.1. .
A bilinear algorithm with integer coefficients becomes a bilinear algorithm over with the same number of multiplications when its coefficients are reduced modulo 2. An algorithm with integer constants that can be applied to blocks of matrices cannot use commutativity, and by the argument of Hopcroft and Kerr [11] a lower bound over applies to it as well. Rudich
2020 Mathematics Subject Classification. 68Q17, 15A69; 68V05, 68V15.
Key words and phrases. Matrix multiplication, tensor rank, bilinear complexity, lower bounds, finite fields, substitution method, computer-assisted proof, formal verification, Lean. and Rousseau explain this reduction and formalize it in Lean [21]. Theorem 1.1 therefore has the following consequence.
Corollary 1.2. A bilinear algorithm over or with integer coefficients that multiplies two matrices uses at least 23 multiplications. In particular , and no recursive algorithm with integer constants has an exponent below .
Over fields of characteristic zero the rank of is still unknown. It lies between 19 and 23.
The method. The proof is a computation organized by the substitution method [19, 1, 16, 4, 5]. Let be the space of first factors. For a subspace let be the rank of modulo , that is, the rank of the problem in which the first input is restricted to the annihilator of . In a decomposition of length at most terms have their first factor in (Lemma 2.1). For this bounds the number of first factors that each subspace can contain, the capacity of the subspace. Wang bounded for representatives of the 496 orbits of subspaces under the symmetries of [24], and Rudich and Rousseau improved these bounds [21].
In Section 3 we raise the lower bound for 111 classes of their table. For most of them we enumerate the possible first factors of a hypothetical shorter decomposition of the quotient and refute each candidate. The others follow from these by monotonicity. The most useful new bound is for a point spanned by a matrix of rank one. With the bounds of [21] for the other two classes of points it shows that the 22 first factors of a decomposition of length 22 are distinct. By Lemma 2.1, decompositions of length 23 give upper bounds, and those of a collection of Kauers [13] show that most of the new bounds are best possible.
Section 4 constrains the numbers , , of first factors of rank 1, 2 and 3. These constraints come from a flattening of to which each term contributes the rank of its first factor, and hence . A Gram-matrix form of the identity behind this inequality excludes eight types , three of them by short arguments and five by an exhaustive computation. Section 5 shows that, if at least 14 first factors have rank one, no line in a certain orbit of 441 lines contains two first factors, although the capacity of these lines is 2. The proof assumes two first factors on such a line, enumerates the possible projections of the other 20 terms and shows that none of them lifts back to a decomposition of .
With these constraints we enumerate, up to the symmetry group of order 56,448, all sets of 22 nonzero matrices in that satisfy them (Section 6). An exact search then tries to complete each set to a decomposition (Section 7), and fails for every one of them.
Relation to earlier work. Capacities, coset profiles, the symmetry-reduced enumeration of first factors and the deduction that the first factors are distinct come from the work of D’Ambrosio [7], Wang [24, 25] and Yang et al. [Yan26], and the split flattening is due to Yang et al. In the proofs of the conditions on the first factors alone exclude all cases. At they do not, and most of the work lies in refuting the sets of first factors that survive, by an exhaustive search for the second and third factors (Section 7). Certificates that branch on these factors also occur in the Lean proof of [21]. What is new here is this refutation step, applied to all 75,327,600 sets that survive the search at (Table 3), the new lower bounds of Table 1, the type exclusions of Proposition 4.5 and Theorem 5.1.
Verification. Sections 8 and 9 describe the verification. The searches emit certificates, which are verified by checkers written in Lean. The soundness of each checker is a theorem of Lean proved with its three standard axioms. There are two formal proofs. In the first, the checks for the search at and for the largest enumerations are evaluated as compiled code through native_decide, which adds one axiom for each evaluation. This proof therefore depends on the Lean compiler and runtime as well as on the kernel. In the second (§ 9), the kernel evaluates every check, and its final theorem depends only on the axioms propext, Classical.choice and Quot.sound. Laderman’s algorithm is also checked in Lean, which makes the equality a theorem there, and the bound of Corollary 1.2 for algorithms with integer constants that can be applied to blocks is derived in the formulation of [21]. Statements marked with † depend on a computation.
Preliminaries
The tensor
Let and let be the matrix units. We write
A decomposition of length is an expression , and the rank of is the least such . We call the first factors. When has a decomposition of length it also has one of length : replace a term by with . In a decomposition of length 22 all factors are nonzero, since otherwise would have a decomposition of length 21, contrary to [21].
For a first factor we write and for the second and third factors read as matrices in the index order of . Thus and , and the triple is identified with .
Symmetries
For the map
fixes , because and cancel on the index shared by the first two factors, and and cancel in the same way on and . So does , which permutes the terms of . Both maps send decompositions to decompositions of the same length. On first factors they generate the group of maps and with . It has order and preserves the rank of a matrix. The space contains 511 nonzero matrices, of which 49 have rank one, 294 rank two and 168 rank three. The group acts transitively on each of these three sets.
Quotients and capacities
For a subspace let be the projection and . We write for the rank of . If then , and for .
Lemma 2.1 ([7 §4], [25 Lemma 2.1], [Yan26, Lemma 2.2]). If , then for every subspace
Proof. Applying removes the terms with and leaves a decomposition of of length .
We call a subspace of dimension 1 a point and one of dimension 2 a line. Wang sorted the subspaces of into 496 classes up to the action of [24]. A table assigns to each class a number . At the capacity of is , and Lemma 2.1 says that a subspace contains at most first factors of a decomposition of length 22. We start from the table of Rudich and Rousseau, which gives exactly for 359 classes and lower bounds for the others [21]. In this table , and for the points spanned by matrices of rank two and three. In our data the classes are numbered as in the Lean table of [21], which lists a basis of a representative of each class.
The case of a hyperplane will be used often. Here is a nonzero linear form, which we write as with a matrix , and we set . Contracting with gives the matrix . It consists of three copies of , one for each value of , and so has rank . Hence , and Lemma 2.1 becomes the statement that at least first factors satisfy .
Lower bounds for quotients
Coset profiles
Let be a subspace and an integer. To prove we assume that has a decomposition of length , which we may take with all factors nonzero (§ 2). Its first factors are nonzero cosets of . Let be the number of with . Applying Lemma 2.1 to the decomposition of and a superspace gives (compare [Yan26, Lemma 2.2])
We call a function with that satisfies (2) for all a coset profile. The coset profiles are the integer points of a polytope with one coordinate per nonzero coset. We enumerate them up to the stabilizer of in , or for six classes up to a subgroup of it, by an orderly branch and bound in which linear-programming bounds prune the branches. We then refute each coset profile by the completion search of § 7 with target . If all coset profiles are refuted, then . The bounds used in (2) belong to strict superspaces of , so we establish new bounds in decreasing order of .
Points
Theorem 3.1 (†). If is spanned by a matrix of rank one, then .
Here has 255 nonzero cosets and the stabilizer of in has order 1152. The enumeration of coset profiles of size 20 has 809,336,049 nodes and 7,409,768 leaves, and all leaves are refuted.
Corollary 3.2 (†). The 22 first factors of a decomposition of length 22 are pairwise distinct.
Proof. A repeated first factor would put two first factors in the point . By Theorem 3.1 and [21] all points have and therefore capacity at most 1. □
The other classes
Table 1 lists the new bounds by dimension. We proved 88 of them, among them Theorem 3.1, by the method of § 3.1. The other 23 follow by monotonicity: for each of them some with is contained in a subspace of larger dimension whose new bound is at least as large, and . These are the bound for one class of dimension 2, the bound for eight classes of dimension 3, the bound for three classes of dimension 4, and the bound for eleven classes of dimension 4. For 106 of the 111 classes the new bound equals the upper bound of [21].
| classes | bounds | enumeration nodes | leaves | |
| 1 | 1 | 20 21 | 809,336,049 | 7,409,768 |
| 2 | 4 (1) | 19 20 (1), 20 21 (3) | 26,301,783,827 | 5,211,895,431 |
| 3 | 35 (8) | 18 19 (17), 19 20 (18) | 3,654,254,117 | 969,245,867 |
| 4 | 50 (14) | 16 17 (8), 17 18 (23), 18 19 (19) | 46,041,278 | 15,998,835 |
| 5 | 21 | 16 17 (5), 16 18 (1), 17 18 (15) | 1,089,004 | 349,120 |
Table 1. New lower bounds on , by . A class is listed under the bound of [21] and the new bound. The number in parentheses in the second column counts the classes whose new bound follows by monotonicity. The last two columns give the size of the enumerations of § 3.1.
Proposition 3.3 (†). The lower bounds of Table 1 hold.
Upper bounds
Lemma 2.1 also gives upper bounds: if a decomposition of length 23 has first factors in , then . We apply this to the collection of schemes of length 23 that Kauers made available [13]. It consists of the 64,150 schemes in the data set of [14 §6], which extends that of [12], and nine named schemes. Of its 64,159 files, 62,239 are decompositions over ,1 and we use each of them three times, once with each of its three factors in the role of the first factor. For 406 of the 496 classes, among them 103 of the 111 classes of Table 1, one of these decompositions has first factors in a subspace of the class, and hence . For classes 293 and 488 in the numbering of [21], which keep the bounds of [21], the upper bounds obtained in this way are new, and they give and , respectively. For class 473 of Table 1 the new upper bound is 20, which equals its new lower bound. Hence is now known exactly for 107 of the 111 classes of Table 1, namely class 473 and the 106 whose new bound equals the upper bound of [21]. For class 468 the collection gives , against the lower bound 19. For example, one decomposition in the collection has the three matrices , and their sum among its first factors. They are the three nonzero elements of a line of class 488 and lie in planes of classes 468 and 473. By Lemma 2.1 this gives the bound 20 for these three classes. For every class, our data list a decomposition with the largest number of first factors in a subspace of the class.
The ranks of the first factors
In this section we consider a decomposition with all factors nonzero. Its type is , where is the number of first factors of rank . We write and .
The split flattening
Index the rows of a matrix by pairs and the columns by pairs , where and run over the nine matrix positions. For , , let be the matrix with entries . Its rank is when , since is the Kronecker product of and up to the order of indices. Let . By linearity depends only on , and its only nonzero entries are . Thus is a permutation matrix.
Lemma 4.1 ([Yan26, (4.2)]). , that is, .
Proof. .
For a decomposition of length 22 we have , so Lemma 4.1 gives .
The Gram form
The inequality of Lemma 4.1 does not use how the terms fit together. The following factorization of records this information as equations between pairs of terms. Factor each first factor as with . Let be the matrix whose column blocks are , with rows indexed like the rows of , and let be the matrix with column blocks , with rows indexed like the columns of . Then , so .
Lemma 4.2. The matrix is idempotent of rank 27, and is idempotent of rank . Its blocks are
Proof. . The rank of is at most 27, and has rank 27, so . Over the matrix is the complementary idempotent, of rank . For (4.1), and exactly when and for some . Hence the entry of is . □
Write with of size and let be their row blocks. Multiplying (4.1) by on the left and by on the right, and setting and , we obtain
for all , with whose columns lie in the column spaces of and . For this is the rank-additive saturation lemma of Yang et al. [Yan26, Lemma 5.1]. Its solutions are invariant under the symmetries (2.1), and under the change with .
Excess zero
Lemma 4.3. If and some first factor is invertible, then . In particular, a decomposition of length 22 with has type .
Proof. For , (4.2) reads . Let be invertible. Then gives , so is invertible. For the equation shows that vanishes on , a space of dimension . Hence . The equation gives . Therefore , that is , for all . Then . For there is therefore no invertible first factor, and , give . □
Lemma 4.3 sharpens [Yan26, Proposition 5.3 and Corollary 6.1], by which a decomposition with has at most one invertible first factor. The same argument for shows that a decomposition with and an invertible first factor has length 7 and all other first factors of rank one, as in Strassen’s algorithm.
Three invertible first factors
Lemma 4.4. A decomposition with three distinct invertible first factors has .
Proof. By Lemma 4.3 we may assume , so that with . Let range over the indices of the three invertible terms, take and , and let be the blocks of and $q. Since , (4.1) gives
The matrix is the product of the block column and the block row , so its rank is at most 3. (i) Each is singular. Otherwise, for , the submatrix on the blocks has rank , because has rank at least 2 and the correction has rank at most 1. This contradicts the bound 3. Hence , so , and .
(ii) . Both ranks are at least . If were invertible, then would have rank at least 2 for , but has rank at most 1. The same argument applies to .
(iii) . By (i) and (ii), . For the matrix is nonzero and its image lies in , so .
(iv) Let be the row space of , of dimension at most 3. Each block row has its rows in . For the row has in block , in block , and 0 in the third block. Call it .
(v) Fix a block and let be the other two indices. The projection of to block contains for both , and these are independent. Hence the vectors of that vanish on block form a space of dimension at most 1. It contains the nonzero vectors and , which are therefore equal. This gives and .
(vi) Over the three choices of we get for all , where are the three indices. The form a basis by (iii), so the three first factors are equal, a contradiction. □
An exhaustive computation
For larger configurations we solve (4) by computer. Fix a type and a value of . Using (1) and the action of we bring one term, the anchor, to (or to a fixed matrix of rank two when there is no invertible term) and its data to one of finitely many orbit representatives: 7 for and 36 for with an invertible anchor, and 4 for with an anchor of rank two. The other terms become vertices: tuples that satisfy (4) with themselves and with the anchor. For fixed these conditions are linear in once is fixed and linear in once and are fixed, so the vertices are found by solving linear systems. Two vertices are adjacent when their first factors differ and (4) holds for the pair. A decomposition of the given type yields a clique with the prescribed number of vertices of each rank. We first list the cliques formed by the anchor’s companions of rank two and three (the cores). For each core we then bound the largest set of pairwise adjacent rank-one vertices compatible with the core and having distinct first factors, using a colouring of the compatibility graph as the certificate.
Proposition 4.5 (†). No decomposition of length 22 has type , , , or .
The computation behind Proposition 4.5. The last column is the number of rank-one terms by which a core would have to be extended, and no core extends that far.
| type | anchor orbits | cores | needed | |
| 0 | 4 | 23,175 | 17 | |
| 1 | 7 | 0 | 18 | |
| 1 | 7 | 708 | 17 | |
| 2 | 36 | 96,717 | 17 | |
| 2 | 36 | 68 | 18 |
Table 2. The computation behind Proposition 4.5. The last column is the number of rank-one terms by which a core would have to be extended, and no core extends that far.
Lemmas 4.3 and 4.4 exclude , and . Since forces one of the types , , , we obtain the following.
Corollary 4.6 (†). Every decomposition of length 22 satisfies , and none has type , , , or .
Two first factors on a line
Let be the line spanned by and . Its orbit under consists of 441 lines, each containing one matrix of rank one and two of rank two. By Table 1 we have , and Rudich and Rousseau prove in Lean [21]. The capacity of is therefore 2, so Lemma 2.1 allows two first factors of a decomposition of length 22 in a line of this orbit. We show that this does not happen when at least 14 first factors have rank one, which is case (II) of the search in Section 6.
Theorem 5.1 (†). In a decomposition of length 22 with at least 14 first factors of rank one, each line in the -orbit of contains at most one first factor.
The proof uses a criterion for lifting a decomposition of a quotient to a decomposition of . Let be a line with nonzero elements , and , and choose linear forms on with , , and . Let
be a decomposition with nonzero factors. For a linear form on put
a set of matrices, where is the contraction of Section 2.
Lemma 5.2 (Lifting criterion). The following are equivalent.
(a) There are and two further terms with distinct first factors in that together with the terms form a decomposition of of length 22.
(b) At least two of the sets , and contain a matrix of rank one.
Proof. Fix representatives and write with . As runs through , the pair takes each value in once. For a choice of the the tensor maps to 0 in , so it equals for some matrices and . Contracting with , and shows that , and are the elements of , and given by this choice. Two terms with distinct first factors and nonzero second and third factors have the form with . Since
the two terms exist for this choice exactly when two of , and have rank one. The element of depends only on the bits , that of only on the bits , and that of only on their sums. Any two of these three families of bits can be chosen independently. Hence two of the three matrices can be made of rank one by the same choice if and only if each of them can be made of rank one by some choice.
For a single term whose slice has rank one, a related statement is part of [16 Proposition 3.1], and Wang’s forced-product technique [24] also enumerates the free coefficients of a residual and tests its rank. To test whether , an affine space of matrices, contains a matrix of rank one, we solve for each of the 511 nonzero vectors a linear system in and the coefficients.
Proof of Theorem 5.1. By symmetry it suffices to treat . Suppose two first factors lie in . They are distinct by Corollary 3.2, and the capacity of is 2, so the third nonzero matrix of is not a first factor. The other 20 terms project to a decomposition of of length 20 with nonzero factors, and its coset profile satisfies (2) with . At most one of the two first factors in has rank one, so at least 13 of the other 20 have rank one. Only 39 of the 127 nonzero cosets of contain a matrix of rank one, which gives the additional inequality
where is the set of these 39 cosets. We enumerate the coset profiles that satisfy these inequalities, as in § 3.1, and run the completion search with target on each. When it finds decompositions of with a given profile, we list all of them and check that for each at most one of the three sets in Lemma 5.2(b) contains a matrix of rank one. By Lemma 5.2 no profile comes from a decomposition of of length 22. The enumeration has 737,787,637,822 nodes and 189,298,650,178 leaves. For 10 of the profiles the completion search finds decompositions of , 540 in all, and none of them lifts. □
The reduction to coset profiles works for any subspace in place of and any number of first factors in it, with the inequality for adjusted to the matrices of rank one in the subspace. The formalization proves it in this generality, together with the refutation of profiles that admit no decomposition of the quotient.
The search at
Admissible sets
By Corollary 3.2 the first factors of a decomposition of length 22 form a set with . Let be the number of elements of rank one in . We split the proof into three cases: (I) , (I′) and (II) , which is the range of Theorem 5.1.
Definition 6.1. A set with is admissible if
(a) for every subspace in the family described below, and
(b) for every nonzero linear form on ,
and, in case (II), in addition
(c) the type of is not excluded by Corollary 4.6, and
(d) each line in the -orbit of (§ 5) contains at most one element of .
The family consists of the subspaces whose capacity is not implied by the capacity of another subspace, about of them. For a subspace of dimension at most 4 the capacity can be lowered further. Since the elements of are distinct, whenever no nonzero elements of respect the capacities of all subspaces of . We use the bound obtained in this way for five classes of subspaces, for which it is smaller than . By Lemma 2.1, Corollary 4.6 and Theorem 5.1, the set of first factors of a decomposition of length 22 is admissible, and so are its images under .
Orderly generation
We order the 511 nonzero matrices by rank, and matrices of equal rank by the integer . In case (II) the order is rank one, rank two, rank three. In cases (I) and (I′) it is rank three, rank two, rank one, which keeps the search tree small when there are few elements of rank one. For finite sets of the same size we write if the smallest element of the symmetric difference belongs to . A set is canonical if it is the smallest set in its -orbit. The search follows the design of Wan’s proof enumerator [Wan26b, §3.3]. Orderly generation goes back to Read [Rea78] (see also [McK98]).
Lemma 6.2. Every -orbit of sets contains a canonical set, and every initial segment of a canonical set is canonical.
Proof. The first claim is clear, since orbits are finite. For the second, let be canonical, let be a nonzero matrix and let . Suppose that for some , and let be the smallest element of . Then . If , every element of is smaller than and therefore lies in , so because both have the same size. This is impossible, so . Every element of smaller than then lies in , hence in , while . Hence the smallest element of lies in , that is, . This contradicts the choice of .
The search builds sets in increasing order. A node is a canonical set of size less than 22 that satisfies all constraints restricted to . Its children are the sets with larger than all elements of . By Lemma 6.2 the search reaches each canonical admissible set through its initial segments. It may therefore discard any child that has no canonical admissible completion.
Discarding children
A child is discarded if one of the following holds. Each condition shows that no admissible canonical set has as an initial segment.
violates a capacity in .
For some nonzero , the elements of with , together with all larger matrices with that can still be added, number fewer than .
The case condition on cannot be met by the matrices that can still be added.
In case (II), every type that a completion can have is excluded by Corollary 4.6.
Fewer than matrices larger than remain that can still be added.
No set of further matrices can be added without violating a capacity in . The search proves this by a small branch and bound over the remaining candidates. When such a tree would be large, the child is kept as a node instead.
is not canonical, as witnessed by an element with .
The same tests applied to a node itself may discard all of its children at once. The leaves of the search are the canonical admissible sets.
Results
Table 3 gives the size of the search in each case.
| case | nodes | admissible sets | refuted |
| (I) | 629,424 | 3,580 | all |
| (I) | 19,547,416 | 146,319 | all |
| (II) | 3,377,202,242 | 75,177,701 | all |
Table 3. Size of the search at .
Proposition 6.3 (†). Every canonical admissible set appears as a leaf of the search, and no leaf is the set of first factors of a decomposition of .
Proof of Theorem 1.1. Suppose has a decomposition of length 22. By Corollary 3.2 its first factors form a set of size 22, admissible by the remark after Definition 6.1. By Lemma 6.2 some with is canonical, and is the set of first factors of a decomposition because extends to a symmetry of . This contradicts Proposition 6.3. Hence , and Laderman’s algorithm gives equality.
The completion search
Given nonzero first factors and a target tensor (either or a quotient , written in suitable coordinates), the completion search decides whether there are nonzero with . For a linear form on the space of first factors let be the contraction, a matrix.
The search assigns the pairs one term at a time. For a partial assignment and each nonzero it keeps the residual
and the number of unassigned terms with . A completion exists only if for all , since the unassigned terms with decompose . When all terms are assigned, the decomposition identity holds exactly when for all .
The candidates for the next term are restricted by necessary conditions only, so the search is exhaustive.
If and is tight, that is , then the unassigned terms of give a decomposition of into matrices of rank one. Their vectors form a basis of the column space and their vectors a basis of the row space. Hence lies in the column space of , and lies in the row space and satisfies for every with .
If and , then lies in the column space or lies in the row space of .
These rules are dynamic versions of the restriction lemmas of [7 Lemmas 2 and 3] and [25 Lemma 4.1]. The maps , with fix all first factors, and the quotient targets we use. We may therefore restrict the first term to one representative of each orbit, and its third factor to one representative of each orbit of the stabilizer of .
Verification with compiled checks
The formal statement
8.1. The formal statement. The final theorem states that whenever maps , and from to satisfy . The factors are arbitrary matrices, is the field ZMod 2 of Mathlib, and the definitions of the matrices, of and of a decomposition are the elementary ones, written out in a short file. Further theorems show that the statement does not change when is replaced by the tensor of the bilinear map , and that Laderman’s algorithm reduced modulo 2 is a decomposition of length 23, so that is a theorem in Lean. Rudich and Rousseau formalized the reduction from algorithms with integer constants that can be applied to blocks [21]. Through their formalization the final theorem gives that such an algorithm for matrices uses at least 23 multiplications, which is their result with 23 in place of 22.
Two layers
8.2. Two layers. The first layer consists of theorems proved in Lean 4 [8] with Mathlib [mC20], using only the axioms propext, Classical.choice and Quot.sound. For each kind of certificate it defines a checker, a function with Boolean values, and proves that the checker is sound: if it returns true on some data, the statement that the data certify holds. There are checkers for the nodes of the search at and the reasons for discarding their children, for canonicity, for the enumerations of coset profiles, for the refutation of profiles by the completion search, and for the type exclusions of § 4. The same layer contains the arguments of § 2–§ 6: Lemma 4.2 and its use in Proposition 4.5, Lemma 4.3 for decompositions of length 22, the implication (a)⇒(b) of Lemma 5.2 for the line and the deduction of Theorem 5.1 from its enumeration, the capacity table from the bounds of [21], the 23 bounds of Table 1 that follow by monotonicity, and the deduction of Theorem 1.1 from Proposition 6.3. Lemma 4.4 is not formalized; instead, the type is excluded by the computation behind Proposition 4.5, with and the seven anchor orbits. The formal proof thus excludes six types by computation and two, and , by Lemma 4.3.
The second layer evaluates the checkers on the certificates. We check the certificates as the search programs produce them and, apart from small samples, discard them once checked, since at about 13 terabytes in total they are too large to keep. The kernel evaluates the checks for the type exclusions of Proposition 4.5, for the enumerations of 64 classes of Table 1, for the top levels of all other enumerations, and for the branch of the search in cases (I) and (I′) whose sets begin with a matrix of rank one, which contains no set with . The other checks are evaluated as compiled code: those for the rest of the search at and, below their top levels, those for the enumerations of the point, of 23 further classes and of § 5. The bounds of these 24 classes therefore depend on compiled evaluations, and so, through monotonicity, do seven further bounds of Table 1. In the enumeration of § 5 the compiled checks leave out the 10 profiles that admit decompositions of , and for each of them a kernel proof shows that none of these decompositions lifts.
A compiled evaluation is a call of native_decide. It runs the compiled checker on the data and adds to the environment an axiom stating that the checker returns true on these data. There is one such call for each of the 4,381,024 batches of certificates and for each of 23 further evaluations in the enumerations. The batches are combined through Lean’s module system. Each batch is checked in its own module. Its data and its axiom are private to that module, which exports only a statement about the interface of the batch: the part of the search it covers and the subtrees it leaves to other batches. Further modules import these statements and prove in the kernel that the batches together cover the whole search and all enumerations. A theorem of the first layer turns this covering statement into Theorem 1.1. For this purpose the first layer is written in module form, and each of its more than two million constants that also occur in the non-module development has the same statement and the same axioms there. The covering statement and the final theorem are therefore in one environment, and #print axioms for the final theorem lists the three standard axioms and the 4,381,047 axioms added by these calls.
Each of these axioms is tied by name to a batch and to the checker that the batch evaluates. The checker is recorded with each batch, except for 187,578 batches checked before such records were kept. For those it is determined by the kernel-checked statement that the batch exports, because only one soundness theorem in the build concludes that statement. For the 23 evaluations outside the batches we checked directly that each axiom states that the intended checker returns true. The search programs and the programs that distribute the batches over the machines are not trusted: a wrong or missing batch makes a check or a covering proof fail.
What the proof relies on
The proof relies on the Lean kernel and, in addition, on the Lean compiler and runtime, the C compiler that builds the compiled checkers, and the arithmetic library they use, because native_decide accepts the result of a compiled evaluation without a kernel check. For this reason Mathlib does not accept proofs that use native_decide. This basis is weaker than that of the proofs by Yang et al. [Yan26] and by Rudich and Rousseau [21], which use only the kernel. An independent kernel replay, as carried out in [21], re-checks the first layer and the covering proofs but not the evaluations. Checking a large finite computation by compiled evaluation of a checker proved sound is the method of the Coq proof of the four colour theorem [9] and of the enumeration of tame graphs in the formal proof of the Kepler conjecture [Hall17].
A second point concerns the library of compiled code. The compiled checkers are found by name, and Lean does not check that this library was built from the definitions to which the statement of a batch refers. With a library left over from an earlier build, a false evaluation would become an axiom that looks like any other. With a toy checker whose library had been compiled from an earlier version of its definition, we did obtain in this way a proof of False that Lean accepted. We therefore build each library into a directory named by a hash of its contents. Each batch records the SHA-256 hashes of the library and of the compiled checker modules that it loaded, and the script that generates the combining modules accepts a batch only if these hashes are those of the build used for the final theorem.
As a further check, we selected about one percent of the batches of each kind by a hash of their names and evaluated them again with Lean’s interpreter, which runs the compiled code stored in the checker modules and does not use the library. Because the interpreter is 45 to 200 times slower than compiled code, we re-checked 382 of the 744 selected batches, mostly the smaller ones. Each of them reproduced the module of its batch byte for byte (Table 4). This check does not depend on the library or on the C compiler, but it still depends on Lean’s compiler, which produced the code that the interpreter runs. § 9 describes a second formal proof, in which every check is evaluated by the kernel.
| check | result |
| The completion search on the first factors of a known decomposition of length 23, with target , and on its quotients by 12 subspaces of | a completion is found in all 13 cases |
| Six decompositions of length 23 (listed in the data): the system (4.2) and its analogues for the second and third factors, 18 cases in all | satisfied, with |
| The 62,239 decompositions of length 23 of § 3.4, each factor in the role of the first factor: the system (4.2) and Lemmas 4.1, 4.3 and 4.4, 186,717 cases | satisfied in all cases, with from 0 to 11 |
| The same 186,717 cases against the bounds of [21] and Table 1: at most first factors in each subspace of (Lemma 2.1) | satisfied for all 8,283,458 subspaces |
| Re-evaluation by Lean’s interpreter, without the library, of 382 of the batches selected by a hash of their names (§ 8), namely 240 of the 602 selected for case (II), the one selected for each of cases (I) and (I′) and all 140 selected for the enumerations, and of all 89 parts of the search kept as a sample of about one in a thousand | identical modules in every case |
| Replay by Lean’s checker of a random sample of 0.1% of the private parts of the proof of § 9, drawn from the enumerations for the point, the classes and the external leaves, which have 9.1 million modules | none of the sampled parts fails |
| all 9,538 sampled parts | 5,914 replay, 3,258 cannot be replayed because a private part they import was not kept, and 366 lie in packages that the final proof does not use |
| the 9,165 sampled parts in packages of the final proof | 5,912 replay and 3,253 cannot be replayed |
| Regeneration, with all private parts kept, of 24 packages (6,433 modules) chosen at random in advance from the search at in the same proof, which has 5.0 million modules: 20 of the 18,110 packages of case (II), the package of case (I) and 3 of the 80 packages of case (I′) | all 24 packages export the statement of the original build |
| 6 packages (503 modules) | a byte-identical replay of the original modules |
| 5 packages (576 modules) | the same statement re-derived independently, with every module replayed by Lean’s checker |
| the other 13 packages (5,354 modules) | the same statement re-derived independently, with the combining modules replayed at the exported level |
| the 6,433 regenerated modules | 6,390 replay by Lean’s checker and none fails; the other 43, which combine the results of a package, replay in the kernel at the level of exported statements |
Table 4. Independent checks. In the last two checks, a package is a group of Lean modules of the proof of § 9, and the private part of a module consists of its certificates, which are private declarations (§ 9.1).
The computation. Compiled, the checkers handle a node of the search at in about 1–2 ms, a node of an enumeration in 0.004–0.03 ms and a leaf in about 0.02 ms. This is between one hundred and one thousand times faster than evaluation by the kernel. The computation used Lean v4.30.0 and about 478,000 vCPU-hours of machine time.
Further checks. Table 4 lists checks that are not part of the proof. Their programs and outputs are in the accompanying data.
Data and code. The programs, the tables, the certificate formats, the Lean development and a list of all batches of the computation with their hashes are available at https://github.com/tejasvi/rank333-f2 and archived at https://doi.org/10.5281/zenodo.23236154. The kernel-only proof of § 9, with the generators and scripts that regenerate its modules, is at https://github.com/tejasvi/rank333-f2-kernel and archived at https://doi.org/10.5281/zenodo.23304899.
Verification by the kernel
The second formal proof evaluates every check in the Lean kernel. Its final theorem, R22K.Final.rank_ge_23, has the statement of § 8, and #print axioms lists only propext, Classical.choice and Quot.sound. The same module proves the consequences stated in § 8, with the same axioms. The proof follows Sections 2–7 except in case (II), where the enumeration behind Theorem 5.1, with nodes, is too large for the kernel. We replace it by Lemma 9.1, which has a short proof, and by Theorem 9.2, whose enumerations are together ten times smaller.
Two caps for case (II). The first lemma bounds the number of first factors in a subspace of dimension six.
Lemma 9.1. Let or with nonzero. In a decomposition of length at most 22, at most 11 first factors lie in .
Proof. The transposition symmetry of § 2 exchanges the two kinds of subspaces, and the symmetries (2.1) act transitively on each kind. So we may assume that is the space
of matrices with zero third row. Let be the set of terms with and the set of the others. Let be the projection, which records the third row. Then
Read as a linear map from to , the right side is injective with image , where is spanned by . The left side factors through the map , , so is injective, , and the map sends the image of , of dimension 9, onto . With , the tensors for therefore span a space of dimension at most . Each of them has rank at most one, and , so all lie in the span of at most of the vectors . Hence the third factors with lie in a subspace of of dimension at most . Projecting the third factor to removes the terms of , so the rank of modulo in the third factor is at most . Since is invariant under the cyclic permutation of its three factors, this rank equals , where has the same matrices as . If , then is a subspace of dimension at most 4 containing the space of matrices supported on the third column, and by [21] each such subspace has . This contradicts . So and .
Let
In each of these planes the nonzero matrices have ranks 1, 2, 2, 2, 2, 3, 3. The -orbit of has 14,112 planes and that of has 7,056. Their stabilizers have orders 4 and 8, respectively. The table gives for both, so Lemma 2.1 allows three first factors in such a plane.
Theorem 9.2 (†). In a decomposition of length 22 with at least 14 first factors of rank one, each plane in the -orbit of or of contains at most two first factors.
The proof uses a lifting test and a symmetry reduction of the completion search.
Lemma 9.3. Let be a plane and a decomposition with nonzero factors. For a linear form on let . Suppose that for each set of three nonzero elements of there is a form such that every matrix in has rank greater than the number of with . Then there are no and three terms with distinct first factors in that complete the 19 terms to a decomposition of .
Proof. Suppose such terms exist, with first factors in a set . Contracting the decomposition of with gives for some vectors . The left side lies in , and the right side has rank at most the number of with , contrary to the choice of .
Unlike Lemma 5.2, Lemma 9.3 gives only a sufficient condition. Its hypothesis is certified by vectors and, for each nonzero , a vector with and for all , where . Then for every , so the rows are independent and . Where no single form suffices for a set , the certificate fixes one element of and splits over the possible terms at that element, refuting each case in the same way.
The completion search on these leaves uses one more reduction. Two of the 19 terms whose first factors lie in the same coset of can exchange their pairs , and the result is again a decomposition of that lifts if and only if the original one does. Call a decomposition canonical if within each such group of terms, apart from the group of the term on which the search branches first, the integers do not decrease with (here and are read as 9-bit integers).
Lemma 9.4. Each decomposition of becomes canonical after exchanges within the groups, and the exchanges do not change whether it lifts.
Proof. Let . Exchanging an inverted pair in a group raises by a positive amount, and is bounded, so repeated exchanges end at a canonical decomposition. Both properties are invariant under exchanges because they depend only on the multiset of terms.
The search therefore refutes only canonical decompositions. On four leaves for which the search was run both with and without this reduction, the number of complete assignments drops by exactly the order of the exchange group: 8, 48, 48 and 96.
Proof of Theorem 9.2. We follow the proof of Theorem 5.1. Suppose that three first factors lie in or . They are distinct by Corollary 3.2, and at most one of them has rank one, so at least 13 of the other 19 have rank one. The other terms project to a decomposition of of length 19, whose coset profile on the 63 nonzero cosets of satisfies (3.1) and , where is the set of cosets that contain a matrix of rank one. We enumerate these profiles up to the stabilizer of . Table 5 gives the size of the two enumerations. Inside the enumeration, the completion search with target refutes every leaf except the external ones, whose certificates are too long, whose search exceeds a budget, or which admit decompositions of . A separate run of the completion search refutes most external leaves. For the others, decompositions of exist, and Lemma 9.3 shows that none of them lifts, with Lemma 9.4 reducing the decompositions to be tested.
| plane | nodes | leaves | external leaves | with decompositions | assignments |
| 60,864,120,396 | 22,519,627,971 | 392,525 | 3,382 | 343,609,305 | |
| 12,944,107,307 | 4,503,216,713 | 96,469 | 27 | 7,254 |
Table 5. The enumerations behind Theorem 9.2. External leaves are refuted outside the enumeration; for those with decompositions of , the last column counts the complete assignments that the completion search tests with Lemma 9.3.
In case (II), the search of § 6 uses Lemma 9.1 and Theorem 9.2 in place of Theorem 5.1: in Definition 6.1(d), each plane in the orbits of and contains at most two elements of , and each subspace of Lemma 9.1 at most eleven.
The other checks
The point, the 23 classes of Table 1 whose enumerations the first proof evaluates as compiled code, and the search at are checked by the kernel in the same way as the other enumerations. For 21 of the 23 classes, none of their 7,446 external leaves admits a decomposition of the quotient. For classes 303 and 321 the kernel proves the bound directly, and these proofs include the refutation of 3,587 and 3,541 external leaves, respectively.
The certificates are grouped into packages of Lean modules. The certificates of a module are private declarations, and the module exports a statement about the part of the proof it covers, as in § 8. The kernel checks every declaration when the module is built. The final theorem depends on about 151,000 packages with 14.2 million modules, built in about 530,000 vCPU-hours. We read off the axioms of the final theorem in two independent ways: with #print axioms, and as the union of the axioms that the kernel records for every module when it is built, private declarations included, over the 20,470 modules that the final theorem uses. Both give propext, Classical.choice and Quot.sound. A search of all modules for sorryAx, Lean.ofReduceBool, Lean.trustCompiler and the auxiliary declarations of native_decide finds none. We also checked that every module and every import matches its recorded hash, that no two modules share a name, and that all modules were checked by the same build of the kernel. The private parts of the modules were deleted after these checks, so a complete independent replay must first regenerate them with the published generators and rebuild the modules.
Remarks
The constraints of § 4 hold for all decompositions of length 22, independently of the search. The Gram system (4) applies to decompositions of any length, and the computation behind Proposition 4.5 can be applied to other types. It would be interesting to know whether the method says anything about the structure of decompositions of length 23, of which there are many inequivalent ones over [6, 12].
The rank of over , over and over remains open, as does its border rank over . Our method relies on enumerating finite sets of first factors over , and it does not extend to fields of characteristic zero.
Acknowledgment
The author thanks Manuel Kauers for sharing the collection of schemes [13]. This research received no specific funding.
Use of AI tools
Generative AI tools contributed to this work as follows. They did not contribute to choosing the question, a long-standing open problem that the author chose to work on. They helped with the conceptual approach and made central technical contributions: they were used to find and prove the results, including the plan of the proof in Sections 3 to 7, and to write the programs and both Lean formalizations. They were also used for writing and exposition (drafting and revising the text), for checking for errors (reviewing the proofs, the programs and the text), and for other supporting tasks (searching the literature and running the computations). The author takes full responsibility for the content of the paper, including the parts produced with these tools.
References
ORCID: https://orcid.org/0000-0003-4668-3639
References
- [1][AFT11] B. Alexeev, M. A. Forbes and J. Tsimerman, Tensor rank: some lower and upper bounds, in: 26th Annual IEEE Conference on Computational Complexity (CCC 2011), 2011, 283–291.DOI
- [2][BCS97] P. Bürgisser, M. Clausen and M. A. Shokrollahi, Algebraic Complexity Theory, Grundlehren der mathematischen Wissenschaften 315, Springer, 1997.
- [3][Beu26] S. Beuchert, Independent verification of the Wang F₂-certificate for R(⟨3, 3, 3⟩) ≥ 20, Zenodo, 2026, https://doi.org/10.5281/zenodo.20691957.
- [4][Blä03] M. Bläser, On the complexity of the multiplication of matrices of small formats, J. Complexity 19 (2003), 43–60.DOI
- [5][Blä13] M. Bläser, Fast matrix multiplication, Theory of Computing Library, Graduate Surveys 5, 2013.
- [6][CBH11] N. T. Courtois, G. V. Bard and D. Hulme, A new general-purpose method to multiply 3 × 3 matrices using only 23 multiplications, arXiv:1108.2830, 2011.arxiv.org/abs/1108.2830
- [7][D’Am26] I. D’Ambrosio, The exact F₂-rank of 2 × 3 by 3 × 4 matrix multiplication, Zenodo, 2026, https://doi.org/10.5281/zenodo.21895176.
- [8][dMU21] L. de Moura and C. Ullrich, The Lean 4 theorem prover and programming language, in: Automated Deduction – CADE 28, Lecture Notes in Comput. Sci. 12699, Springer, 2021, 625–635.DOI
- [9]G. Gonthier, Formal proof—the four-color theorem, Notices Amer. Math. Soc. 55 (2008), 1382–1393.
- [11]J. E. Hopcroft and L. R. Kerr, On minimizing the number of multiplications necessary for matrix multiplication, SIAM J. Appl. Math. 20 (1971), 30–36.DOI
- [12]M. J. H. Heule, M. Kauers and M. Seidl, New ways to multiply 3 × 3-matrices, J. Symbolic Comput. 104 (2021), 899–916.DOI
- [13]M. Kauers, collection of schemes of length 23 for 3 × 3 matrix multiplication over F₂, file 333x23.tgz, http://www.algebra.uni-linz.ac.at/people/mkauers/333x23.tgz, SHA-256 bfe79080120ab9eb55e04126d943df7b2c279544bf13ba623488a1f527ca1923, retrieved 18 October 2026.
- [14]M. Kauers and J. Moosbauer, A normal form for matrix multiplication schemes, in: Algebraic Informatics – CAI 2022, Lecture Notes in Comput. Sci. 13706, Springer, 2022, 149–160.arxiv.org/abs/2206.00550
- [15]J. D. Laderman, A noncommutative algorithm for multiplying 3 × 3 matrices using 23 multiplications, Bull. Amer. Math. Soc. 82 (1976), 126–128.DOI
- [16]J. M. Landsberg and M. Michalek, Abelian tensors, J. Math. Pures Appl. 108 (2017), 333–371.
- [19]V. Y. Pan, Methods of computing values of polynomials, Russian Math. Surveys 21 (1966), 105–136.DOI
- [21]I. Rudich and L.-M. Rousseau, Lower bound of 22 for 3 × 3 matrix multiplication over ℤ, arXiv:2610.01639, 2026; Lean proof at https://doi.org/10.5281/zenodo.23047901.
- [22]V. Strassen, Gaussian elimination is not optimal, Numer. Math. 13 (1969), 354–356.DOI
- [23]B. Tahir, A certificate-based conditional lower bound of 21 for 3 × 3 matrix multiplication over F₂, public review draft, 2026, https://github.com/btahir/rank21-f2-review.
- [24]C. Wang, Automated lower bounds for bilinear complexity over finite fields, arXiv:2603.07280, 2026.arxiv.org/abs/2603.07280
- [25]C. Wang, A lower bound of 21 for 3 × 3 matrix multiplication over F₂, arXiv:2609.06725, 2026.arxiv.org/abs/2609.06725
- [26]S. Winograd, On multiplication of 2 × 2 matrices, Linear Algebra Appl. 4 (1971), 381–388.DOI