A nonzero tensor factor cannot defeat the rank exponent
ProvedOAI.MatrixMultiplication.AuxiliarySeparation.tensor_catalytic_obstructionmatrix-multiplicationoai-matmul-modulartensor-rank
For a field , let be the exact rank of the square matrix multiplication coefficient tensor of size , and let . In the semiring of finite tensors over modulo mutual restriction, let be tensor classes with . Let with , and let be the matrix multiplication class of size . If
then . Here addition is direct sum, multiplication is tensor product, and the order is restriction. The result holds over any field and does not require rank additivity.
Preamble
import Lean.Elab.Tactic.Omega import Mathlib.Algebra.AddTorsor.Basic import Mathlib.Algebra.Algebra.Rat import Mathlib.Algebra.BigOperators.Field import Mathlib.Algebra.BigOperators.Fin import Mathlib.Algebra.BigOperators.Group.Finset.Basic import Mathlib.Algebra.BigOperators.Group.Finset.Piecewise import Mathlib.Algebra.BigOperators.GroupWithZero.Finset import Mathlib.Algebra.BigOperators.Ring.Nat import Mathlib.Algebra.Group.Equiv.Basic import Mathlib.Algebra.Order.AbsoluteValue.Basic import Mathlib.Algebra.Order.Archimedean.Basic import Mathlib.Algebra.Order.BigOperators.Group.Finset import Mathlib.Algebra.Order.BigOperators.Ring.Finset import Mathlib.Algebra.Order.Floor.Ring import Mathlib.Algebra.Order.Floor.Semiring import Mathlib.Algebra.Order.Group.Unbundled.Int import Mathlib.Algebra.Order.Ring.Defs import Mathlib.Algebra.Order.Ring.Rat import Mathlib.Algebra.Polynomial.BigOperators import Mathlib.Algebra.Polynomial.Degree.Lemmas import Mathlib.Algebra.Polynomial.Div import Mathlib.Algebra.Polynomial.Eval.Defs import Mathlib.Algebra.Polynomial.Expand import Mathlib.Algebra.Ring.GeomSum import Mathlib.Analysis.Asymptotics.SpecificAsymptotics import Mathlib.Analysis.Convex.Caratheodory import Mathlib.Analysis.Convex.Cone.Dual import Mathlib.Analysis.Convex.GaugeRescale import Mathlib.Analysis.Convex.Jensen import Mathlib.Analysis.Convex.PartitionOfUnity import Mathlib.Analysis.Convex.Topology import Mathlib.Analysis.Normed.Affine.AddTorsorBases import Mathlib.Analysis.SpecialFunctions.BinaryEntropy import Mathlib.Analysis.SpecialFunctions.Log.Base import Mathlib.Analysis.SpecialFunctions.Log.Basic import Mathlib.Analysis.SpecialFunctions.Log.NegMulLog import Mathlib.Analysis.SpecialFunctions.Pow.Continuity import Mathlib.Analysis.SpecialFunctions.Pow.NNReal import Mathlib.Analysis.SpecialFunctions.Pow.Real import Mathlib.Analysis.SpecialFunctions.Stirling import Mathlib.Analysis.SpecificLimits.Basic import Mathlib.Analysis.SpecificLimits.Normed import Mathlib.Combinatorics.Additive.AP.Three.Defs import Mathlib.Combinatorics.Enumerative.DoubleCounting import Mathlib.Data.Complex.Basic import Mathlib.Data.Fin.Rev import Mathlib.Data.Fintype.BigOperators import Mathlib.Data.Fintype.EquivFin import Mathlib.Data.Fintype.Option import Mathlib.Data.Fintype.Perm import Mathlib.Data.Fintype.Sum import Mathlib.Data.Matrix.Mul import Mathlib.Data.Nat.Choose.Multinomial import Mathlib.Data.Nat.Lattice import Mathlib.Data.Nat.Log import Mathlib.Data.Rat.BigOperators import Mathlib.Data.Rat.Floor import Mathlib.Data.Rat.Lemmas import Mathlib.Data.Real.Basic import Mathlib.Data.Set.Finite.Basic import Mathlib.FieldTheory.IntermediateField.Adjoin.Basic import Mathlib.FieldTheory.IsAlgClosed.AlgebraicClosure import Mathlib.Geometry.Convex.Cone.Pointed import Mathlib.GroupTheory.GroupAction.Quotient import Mathlib.GroupTheory.MonoidLocalization.GrothendieckGroup import Mathlib.GroupTheory.Perm.DomMulAct import Mathlib.LinearAlgebra.Basis.Defs import Mathlib.LinearAlgebra.Dual.Lemmas import Mathlib.LinearAlgebra.FiniteDimensional.Basic import Mathlib.LinearAlgebra.FiniteDimensional.Lemmas import Mathlib.LinearAlgebra.Finsupp.LinearCombination import Mathlib.LinearAlgebra.Lagrange import Mathlib.LinearAlgebra.Matrix.Rank import Mathlib.LinearAlgebra.PiTensorProduct import Mathlib.LinearAlgebra.PiTensorProduct.Basis import Mathlib.LinearAlgebra.StdBasis import Mathlib.LinearAlgebra.TensorProduct.Pi import Mathlib.Logic.Equiv.Fin.Basic import Mathlib.Logic.Equiv.Prod import Mathlib.Logic.Equiv.Sum import Mathlib.Order.Antisymmetrization import Mathlib.Order.ConditionallyCompleteLattice.Basic import Mathlib.RingTheory.Polynomial.DegreeLT import Mathlib.RingTheory.RootsOfUnity.AlgebraicallyClosed import Mathlib.Tactic import Mathlib.Tactic.FieldSimp import Mathlib.Tactic.FinCases import Mathlib.Tactic.FunProp import Mathlib.Tactic.Linarith import Mathlib.Tactic.LinearCombination import Mathlib.Tactic.NormNum import Mathlib.Tactic.Positivity import Mathlib.Tactic.Push import Mathlib.Tactic.Ring import Mathlib.Tactic.SplitIfs import Mathlib.Topology.Algebra.Module.FiniteDimension import Mathlib.Topology.Algebra.Order.Field import Mathlib.Topology.Order.MonotoneConvergence import Definitions.Def_OAI429_GenericCharacterCore import Definitions.Def_OAI429_GenericRank import Definitions.Def_OAI429_GenericSemiring_Part1 import Definitions.Def_OAI429_GenericSemiring_Part2 import Definitions.Def_mme_omega set_option autoImplicit false set_option linter.all false open scoped Classical
Formal statement
theorem OAI.MatrixMultiplication.AuxiliarySeparation.tensor_catalytic_obstruction.{u_1} :
∀ {𝕜 : Type u_1} [inst : Field 𝕜]
{D s : @OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst} {d k : Nat},
@LT.lt Nat instLTNat (@OfNat.ofNat Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) d →
@Ne (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst) s
(@OfNat.ofNat (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst) (nat_lit 0)
(@Zero.toOfNat0 (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.instZeroTensorClass 𝕜 inst))) →
@LE.le (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@Preorder.toLE (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@PartialOrder.toPreorder (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@instPartialOrderAntisymmetrization
(OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.FiniteTensor 𝕜)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.FiniteTensor.instPreorder 𝕜 inst))))
(@HAdd.hAdd (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@instHAdd (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.instAddTensorClass 𝕜 inst))
D
(@HMul.hMul (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@instHMul (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.instMulTensorClass 𝕜 inst))
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.matrixClass 𝕜 inst d) s))
(@HAdd.hAdd (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@instHAdd (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.instAddTensorClass 𝕜 inst))
D
(@HMul.hMul (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@instHMul (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.instMulTensorClass 𝕜 inst))
(@Nat.cast (@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@AddMonoidWithOne.toNatCast
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@AddCommMonoidWithOne.toAddMonoidWithOne
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@NonAssocSemiring.toAddCommMonoidWithOne
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@Semiring.toNonAssocSemiring
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@CommSemiring.toSemiring
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.TensorClass 𝕜 inst)
(@OAI.MatrixMultiplication.AuxiliarySeparation.TensorSemiring.instCommSemiringTensorClass 𝕜
inst))))))
k)
s)) →
@LE.le Real Real.instLE
(@HPow.hPow Real Real Real (@instHPow Real Real Real.instPow) (@Nat.cast Real Real.instNatCast d)
(@OAI.MatrixMultiplication.AuxiliarySeparation.exactRankExponent 𝕜 inst))
(@Nat.cast Real Real.instNatCast k)
:= by sorry
Source