Ordered grade product equals the oriented cyclic class product (general profile)
Provedmme_stothers_general_ordered_grade_product_iso_oriented_cyclic_classesThe ordered grade product, refactored through the fifteen oriented cyclic classes.
Fix a strictly positive integral ten-class profile and a scale . The ordered grade triples that carry a nonzero block of fall into ten cyclic classes; allowing also the swap of the first two modes splits these into fifteen oriented classes, with representatives and class map .
Then
where is the cyclic symmetrization and the joint multiplicity of the profile.
Mathematically this is the observation that cyclically symmetrizing an oriented representative produces exactly the three blocks in its cyclic orbit, so the left side is a product over addresses which is precisely the support of , each appearing with the right exponent. It is the step that lets the value analysis be carried out on the ten class values rather than on all grade triples.
Formalization note. The identity is proved in the isomorphism quotient TensorQ, a commutative semiring, where both sides become products of powers of the same elements and the content reduces to a reindexing of a finite product along an injection with the complementary factors trivial.
import Mathlib.Tactic import Definitions.Def_mme_induced_word_zeroing import Definitions.Def_mme_stothers_general_outer_profile import Definitions.Def_mme_stothers_oriented_cyclic_classes open MME BigOperators universe u set_option autoImplicit false
theorem mme_stothers_general_ordered_grade_product_iso_oriented_cyclic_classes
{K : Type u} [Field K] (base : Fin 10 → ℕ) (m : ℕ) :
TensorObj.Isomorphic
(TensorObj.kronFin 15 (fun t ↦
(cyclicSymmetrization
((MME.StothersFourth.cwFourthCanonicalGrading K 6).blockSubtensor
(MME.StothersFourth.fixedOrientedRep t))).kronPow
(MME.StothersFourth.genProfileCount base m
(MME.StothersFourth.fixedOrientedClass t))))
(let e : (Fin 3 → Fin 9) ≃ Fin 729 := by
classical
exact (Fintype.equivFin (Fin 3 → Fin 9)).trans (finCongr (by simp))
TensorObj.kronFin 729 (fun s ↦
((MME.StothersFourth.cwFourthCanonicalGrading K 6).blockSubtensor
(e.symm s)).kronPow
(MME.StothersFourth.genJointMultiplicity base m (e.symm s)))) := by
sorry