OAI/RepresentationTheory/KazhdanLusztig/Frobenius.lean
198 declarations, 0 contain sorry, 0 declared as axioms
Coxeter Frobenius extensions, tensor duality and translation across reflection pairs.
- abbrev
OAI.KLInvariance.TitsSpace.SymmetricCoefficientline 18 - def
OAI.KLInvariance.TitsSpace.coefficientActionline 20 - theorem
OAI.KLInvariance.TitsSpace.coefficientAction_ιline 23 - theorem
OAI.KLInvariance.TitsSpace.coefficientAction_simpleline 28 - theorem
OAI.KLInvariance.TitsSpace.coefficientAction_mulline 33 - def
OAI.KLInvariance.TitsSpace.simpleFixedline 45 - abbrev
OAI.KLInvariance.TitsSpace.simpleRootPolynomialline 48 - theorem
OAI.KLInvariance.TitsSpace.simple_involutiveline 51 - theorem
OAI.KLInvariance.TitsSpace.simpleRootPolynomial_ne_zeroline 55 - theorem
OAI.KLInvariance.TitsSpace.simple_antiline 58 - theorem
OAI.KLInvariance.TitsSpace.simple_divisibleline 63 - def
OAI.KLInvariance.TitsSpace.simpleCoordinatesline 68 - instance
OAI.KLInvariance.TitsSpace.simpleFixed_freeline 73 - instance
OAI.KLInvariance.TitsSpace.simpleFixed_finiteline 76 - def
OAI.KLInvariance.TitsSpace.simpleTraceline 79 - def
OAI.KLInvariance.TitsSpace.simpleDualityline 83 - theorem
OAI.KLInvariance.TitsSpace.simpleDuality_applyline 88 - def
OAI.KLInvariance.FrobeniusDuality.restrictDualline 112 - def
OAI.KLInvariance.FrobeniusDuality.fiberline 117 - theorem
OAI.KLInvariance.FrobeniusDuality.fiber_applyline 120 - theorem
OAI.KLInvariance.FrobeniusDuality.trace_recover_fiberline 124 - theorem
OAI.KLInvariance.FrobeniusDuality.recover_fiber_smulline 129 - def
OAI.KLInvariance.FrobeniusDuality.recoverDualline 139 - theorem
OAI.KLInvariance.FrobeniusDuality.recoverDual_applyline 149 - theorem
OAI.KLInvariance.FrobeniusDuality.restrict_recoverline 152 - theorem
OAI.KLInvariance.FrobeniusDuality.recover_restrictline 158 - def
OAI.KLInvariance.FrobeniusDuality.restrictionEquivline 168 - theorem
OAI.KLInvariance.FrobeniusDuality.restrictionEquiv_applyline 175 - def
OAI.KLInvariance.FrobeniusDuality.restrictPairingline 180Source documentation
Restricting an integral perfect pairing along a Frobenius trace is again integral and perfect; no localization or fraction-field argument is used.
def restrictPairing (p : M ≃ₗ[A] Dual A M) : M ≃ₗ[R] Dual R M := …
- theorem
OAI.KLInvariance.FrobeniusDuality.restrictPairing_applyline 183 - def
OAI.KLInvariance.FrobeniusDuality.extendPairingline 196 - theorem
OAI.KLInvariance.FrobeniusDuality.extendPairing_tmulline 201 - structure
OAI.KLInvariance.FrobeniusDuality.PairedModuleline 226 - instance
OAI.KLInvariance.FrobeniusDuality.(instance at line 235)line 235 - def
OAI.KLInvariance.FrobeniusDuality.unitPairingline 237 - def
OAI.KLInvariance.FrobeniusDuality.unitModuleline 249 - def
OAI.KLInvariance.FrobeniusDuality.restrictionBasisline 263 - def
OAI.KLInvariance.FrobeniusDuality.inducedModuleline 270 - theorem
OAI.KLInvariance.FrobeniusDuality.inducedModule_pairing_tmulline 276 - structure
OAI.KLInvariance.FrobeniusDuality.PairedBimoduleline 295 - def
OAI.KLInvariance.FrobeniusDuality.unitBimoduleline 301 - def
OAI.KLInvariance.FrobeniusDuality.restrictedRightline 319 - def
OAI.KLInvariance.FrobeniusDuality.inducedRightline 330 - theorem
OAI.KLInvariance.FrobeniusDuality.inducedRight_tmulline 333 - theorem
OAI.KLInvariance.FrobeniusDuality.inducedPairing_balancedline 336 - theorem
OAI.KLInvariance.FrobeniusDuality.inducedPairing_symmetricline 355 - def
OAI.KLInvariance.FrobeniusDuality.inducedBimoduleline 369 - def
OAI.KLInvariance.TitsSpace.bottSamelsonline 394 - abbrev
OAI.KLInvariance.TitsSpace.BottSamelsonModuleline 399 - def
OAI.KLInvariance.TitsSpace.bottSamelsonDualityline 401 - def
OAI.KLInvariance.TitsSpace.bottSamelsonRightline 405 - theorem
OAI.KLInvariance.TitsSpace.bottSamelson_balancedline 409 - theorem
OAI.KLInvariance.TitsSpace.bottSamelson_symmetricline 415 - theorem
OAI.KLInvariance.Graded.homogeneous_of_mulline 435 - theorem
OAI.KLInvariance.ReflectionFrobenius.trace_differenceline 456 - theorem
OAI.KLInvariance.ReflectionFrobenius.trace_homogeneousline 464 - theorem
OAI.KLInvariance.ReflectionFrobenius.coordinates_homogeneousline 483 - def
OAI.KLInvariance.ReflectionFrobenius.reflectionBasisline 522 - theorem
OAI.KLInvariance.ReflectionFrobenius.reflectionBasis_zeroline 525 - theorem
OAI.KLInvariance.ReflectionFrobenius.reflectionBasis_oneline 529 - theorem
OAI.KLInvariance.ReflectionFrobenius.reflectionBasis_homogeneousline 533 - def
OAI.KLInvariance.FrobeniusDuality.inducedBasisline 569 - theorem
OAI.KLInvariance.FrobeniusDuality.inducedBasis_applyline 574 - theorem
OAI.KLInvariance.FrobeniusDuality.inducedPairing_basisline 580 - theorem
OAI.KLInvariance.FrobeniusDuality.inducedPairing_basis_homogeneousline 602 - theorem
OAI.KLInvariance.Graded.algHom_polynomialGradingline 636 - def
OAI.KLInvariance.ReflectionFrobenius.polynomialLinearline 665 - theorem
OAI.KLInvariance.ReflectionFrobenius.polynomialLinear_homogeneousline 669 - def
OAI.KLInvariance.ReflectionFrobenius.polynomialActionline 680 - theorem
OAI.KLInvariance.ReflectionFrobenius.polynomialAction_linearline 685 - theorem
OAI.KLInvariance.ReflectionFrobenius.polynomialAction_homogeneousline 690 - abbrev
OAI.KLInvariance.ReflectionFrobenius.polynomialReflectionline 703 - theorem
OAI.KLInvariance.ReflectionFrobenius.polynomialReflection_involutiveline 707 - theorem
OAI.KLInvariance.ReflectionFrobenius.polynomialReflection_antiline 719 - theorem
OAI.KLInvariance.ReflectionFrobenius.polynomialLinear_ne_zeroline 730 - theorem
OAI.KLInvariance.ReflectionFrobenius.polynomialReflection_divisibleline 736 - def
OAI.KLInvariance.ReflectionFrobenius.polynomialTraceline 744 - theorem
OAI.KLInvariance.ReflectionFrobenius.polynomialTrace_homogeneousline 751 - def
OAI.KLInvariance.TitsSpace.symmetricGradingline 777 - theorem
OAI.KLInvariance.TitsSpace.mem_symmetricGradingline 782 - instance
OAI.KLInvariance.TitsSpace.symmetricGrading_decompositionline 792 - instance
OAI.KLInvariance.TitsSpace.symmetricGrading_gradedline 803 - theorem
OAI.KLInvariance.TitsSpace.symmetricGrading_negativeline 815 - theorem
OAI.KLInvariance.TitsSpace.simpleRoot_homogeneousline 819 - theorem
OAI.KLInvariance.TitsSpace.coefficientAction_homogeneousline 824 - def
OAI.KLInvariance.Graded.basisPieceline 853 - theorem
OAI.KLInvariance.Graded.mem_basisPieceline 857 - instance
OAI.KLInvariance.Graded.basisPiece_decompositionline 860 - instance
OAI.KLInvariance.Graded.basisPiece_gradedline 876 - theorem
OAI.KLInvariance.Graded.basis_mem_pieceline 886 - theorem
OAI.KLInvariance.Graded.pairing_homogeneousline 898 - def
OAI.KLInvariance.TitsSpace.BottIndexline 947 - instance
OAI.KLInvariance.TitsSpace.bottIndex_fintypeline 951 - def
OAI.KLInvariance.TitsSpace.bottDegreeline 957 - theorem
OAI.KLInvariance.TitsSpace.bottDegree_nonnegline 962 - def
OAI.KLInvariance.TitsSpace.bottBasisline 967 - theorem
OAI.KLInvariance.TitsSpace.bottBasis_pairing_homogeneousline 979 - instance
OAI.KLInvariance.TitsSpace.bottRealModuleline 1007 - instance
OAI.KLInvariance.TitsSpace.bottRealTowerline 1010 - def
OAI.KLInvariance.TitsSpace.bottPieceline 1014 - instance
OAI.KLInvariance.TitsSpace.bottPiece_decompositionline 1017 - instance
OAI.KLInvariance.TitsSpace.bottPiece_gradedline 1020 - theorem
OAI.KLInvariance.TitsSpace.bottDuality_homogeneousline 1024 - theorem
OAI.KLInvariance.TitsSpace.coefficientAction_oneline 1050 - def
OAI.KLInvariance.TitsSpace.bottWeightline 1056 - def
OAI.KLInvariance.TitsSpace.weightFunctionalline 1062 - def
OAI.KLInvariance.TitsSpace.inducedFunctionalline 1078 - def
OAI.KLInvariance.TitsSpace.bottEvaluationline 1085 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluation_tmulline 1091 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluation_rightline 1097 - def
OAI.KLInvariance.ReflectionFrobenius.wallCoordinateline 1137 - def
OAI.KLInvariance.ReflectionFrobenius.wallMatrixline 1141 - theorem
OAI.KLInvariance.ReflectionFrobenius.wallMatrix_mulVecline 1146 - theorem
OAI.KLInvariance.ReflectionFrobenius.matrixTwist_injectiveline 1158 - theorem
OAI.KLInvariance.ReflectionFrobenius.wallCoordinate_injectiveline 1170 - def
OAI.KLInvariance.TitsSpace.bottEvaluationMatrixline 1213 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluation_expandline 1216 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluationMatrix_consline 1225 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluationMatrix_mulVec_consline 1247 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluationMatrix_injectiveline 1263 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluation_injectiveline 1290 - def
OAI.KLInvariance.TitsSpace.bottCoordinateDenominatorline 1317 - theorem
OAI.KLInvariance.TitsSpace.bottCoordinateDenominator_ne_zeroline 1321 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluation_contains_scaled_coordinatesline 1328 - theorem
OAI.KLInvariance.TitsSpace.symmetricCoefficient_ι_injectiveline 1356 - theorem
OAI.KLInvariance.TitsSpace.coefficientAction_injectiveline 1367 - theorem
OAI.KLInvariance.TitsSpace.coefficientAction_separatesline 1377 - def
OAI.KLInvariance.TitsSpace.bottWeightSupportedline 1403 - theorem
OAI.KLInvariance.TitsSpace.bott_weight_eigenline 1410 - theorem
OAI.KLInvariance.TitsSpace.bott_eigen_supportedline 1423 - theorem
OAI.KLInvariance.TitsSpace.bott_distinct_weight_orthogonalline 1437 - def
OAI.KLInvariance.TitsSpace.bottCoordinateLiftline 1448 - theorem
OAI.KLInvariance.TitsSpace.bottCoordinateLift_evalline 1452 - theorem
OAI.KLInvariance.TitsSpace.bottCoordinateLift_supportedline 1458 - theorem
OAI.KLInvariance.TitsSpace.bottCoordinateExpansionline 1465 - def
OAI.KLInvariance.TitsSpace.bottWeightProjectionline 1497 - theorem
OAI.KLInvariance.TitsSpace.bottWeightProjection_eq_zeroline 1502 - theorem
OAI.KLInvariance.TitsSpace.bott_supported_annihilatesline 1511 - theorem
OAI.KLInvariance.TitsSpace.bott_annihilates_supportedline 1529 - theorem
OAI.KLInvariance.TitsSpace.bott_supported_iff_annihilatesline 1553 - def
OAI.KLInvariance.TitsSpace.bottStalkline 1558 - def
OAI.KLInvariance.TitsSpace.bottStalkProjectionline 1562 - theorem
OAI.KLInvariance.TitsSpace.bottStalkProjection_surjectiveline 1566 - theorem
OAI.KLInvariance.TitsSpace.bottStalkProjection_eq_zeroline 1571 - def
OAI.KLInvariance.TitsSpace.bottStalkDualToSupportline 1575 - theorem
OAI.KLInvariance.TitsSpace.bottStalkDualToSupport_bijectiveline 1588 - def
OAI.KLInvariance.TitsSpace.bottStalkDualityline 1610 - theorem
OAI.KLInvariance.TitsSpace.coefficientAction_reflectionline 1632 - theorem
OAI.KLInvariance.TitsSpace.reflectionCoefficient_antiline 1638 - theorem
OAI.KLInvariance.TitsSpace.reflectionCoefficient_divisibleline 1644 - theorem
OAI.KLInvariance.TitsSpace.reflectionCoefficient_differenceline 1650 - def
OAI.KLInvariance.TitsSpace.bottSubwordline 1678 - theorem
OAI.KLInvariance.TitsSpace.bottSubword_sublistline 1682 - theorem
OAI.KLInvariance.TitsSpace.bottSubword_wordProdline 1693 - theorem
OAI.KLInvariance.TitsSpace.exists_bottSubwordline 1702 - theorem
OAI.KLInvariance.TitsSpace.bottWeight_bruhatline 1713 - theorem
OAI.KLInvariance.TitsSpace.exists_bottWeightline 1718 - theorem
OAI.KLInvariance.TitsSpace.bottWeight_rangeline 1724 - theorem
OAI.KLInvariance.TitsSpace.bottStalkProjection_rightline 1751 - def
OAI.KLInvariance.TitsSpace.bottProjectionSheafline 1761 - def
OAI.KLInvariance.TitsSpace.bottSectionline 1776 - theorem
OAI.KLInvariance.TitsSpace.bottProjectionSheaf_generatedline 1792 - theorem
OAI.KLInvariance.TitsSpace.bottProjectionSheaf_lower_surjectiveline 1798 - theorem
OAI.KLInvariance.TitsSpace.bottProjectionSheaf_upper_surjectiveline 1802 - theorem
OAI.KLInvariance.TitsSpace.bottProjectionSheaf_annihilatedline 1807Source documentation
An actual Bruhat reflection root annihilates the integral edge quotient.
theorem bottProjectionSheaf_annihilated (l : List I) (u b : W) (e : Edge cs u b) {a : I → ℝ} (ha : Represents M cs (label cs u b e) a) (z : (bottProjectionSheaf cs l u b).edge e) : SymmetricAlgebra.ι ℝ (Extended M) (embed M a) • z = 0 := by …Mentions: OAI.KLInvariance.TitsSpace.Represents, OAI.KLInvariance.TitsSpace.bottProjectionSheaf, OAI.KLInvariance.TitsSpace.Extended, OAI.KLInvariance.TitsSpace.embed
- theorem
OAI.KLInvariance.TitsSpace.bottSection_injectiveline 1819 - theorem
OAI.KLInvariance.PairProjection.kernel_upperline 1848 - theorem
OAI.KLInvariance.PairProjection.upper_kernel_of_divisibilityline 1853 - def
OAI.KLInvariance.TitsSpace.simpleFixedActionline 1885Source documentation
The reflection is linear over its actual invariant subalgebra.
def simpleFixedAction (i : I) : SymmetricCoefficient (M := M) →ₗ[simpleFixed cs i] …
Mentions: OAI.KLInvariance.TitsSpace.SymmetricCoefficient, OAI.KLInvariance.TitsSpace.simpleFixed
- def
OAI.KLInvariance.TitsSpace.bottSimpleFlipline 1896Source documentation
Reflect the first tensor factor. It is not asserted to be left A-linear.
def bottSimpleFlip (i : I) (l : List I) : BottSamelsonModule cs (i::l) →ₗ[simpleFixed cs i] BottSamelsonModule cs (i::l) := …Mentions: OAI.KLInvariance.TitsSpace.BottSamelsonModule, OAI.KLInvariance.TitsSpace.simpleFixed
- theorem
OAI.KLInvariance.TitsSpace.bottSimpleFlip_tmulline 1901 - theorem
OAI.KLInvariance.TitsSpace.bottSimpleFlip_divisibleline 1907Source documentation
The integral divisibility statement, before any localization.
theorem bottSimpleFlip_divisible (i : I) (l : List I) (m : BottSamelsonModule cs (i::l)) : ∃ n : BottSamelsonModule cs (i::l), m-bottSimpleFlip cs i l m = simpleRootPolynomial (M := M) i • n := by …Mentions: OAI.KLInvariance.TitsSpace.BottSamelsonModule, OAI.KLInvariance.TitsSpace.bottSimpleFlip, OAI.KLInvariance.TitsSpace.simpleRootPolynomial
- def
OAI.KLInvariance.TitsSpace.bottIndexFlipline 1925Source documentation
Exchange the two branches of the first subexpression slot.
def bottIndexFlip (i : I) (l : List I) (e : BottIndex (i::l)) : BottIndex (i::l) := …
Mentions: OAI.KLInvariance.TitsSpace.BottIndex
- theorem
OAI.KLInvariance.TitsSpace.bottWeight_flipline 1929 - theorem
OAI.KLInvariance.TitsSpace.bottEvaluation_flipline 1934 - theorem
OAI.KLInvariance.TitsSpace.bottStalkProjection_flip_zeroline 1954 - theorem
OAI.KLInvariance.TitsSpace.bottSimpleWall_kernel_projectionline 1968Source documentation
The reverse inclusion to edge annihilation for the simple wall at the first tensor letter, expressed directly on kernel projections.
theorem bottSimpleWall_kernel_projection (i : I) (l : List I) (x : W) {m : BottSamelsonModule cs (i::l)} (hm : bottStalkProjection cs (i::l) x m=0) : ∃ n : bottStalk cs (i::l) (cs.simple i*x), bottStalkProjection cs (i::l) (cs.simple i*x) m = simpleRootPolynomial (M := M) i • n := by …Mentions: OAI.KLInvariance.TitsSpace.BottSamelsonModule, OAI.KLInvariance.TitsSpace.bottStalkProjection, OAI.KLInvariance.TitsSpace.bottStalk, OAI.KLInvariance.TitsSpace.simpleRootPolynomial
- theorem
OAI.KLInvariance.TitsSpace.simpleCoefficient_differenceline 1978 - theorem
OAI.KLInvariance.TitsSpace.bottSimpleEdge_annihilatedline 1991Source documentation
Any old word's simple-edge quotient is killed by the actual label.
theorem bottSimpleEdge_annihilated (i : I) (l : List I) (x : W) (z : PairProjection.Edge (bottStalkProjection cs l x) (bottStalkProjection cs l (cs.simple i*x))) : simpleRootPolynomial (M := M) i • z = 0 := by …Mentions: OAI.KLInvariance.PairProjection.Edge, OAI.KLInvariance.TitsSpace.bottStalkProjection, OAI.KLInvariance.TitsSpace.simpleRootPolynomial
- theorem
OAI.KLInvariance.TitsSpace.bottSimpleEdge_kernel_inclusionline 2002 - theorem
OAI.KLInvariance.TitsSpace.bottSimpleWall_annihilatedline 2011Source documentation
The integral edge quotient is killed by its actual simple-root label.
theorem bottSimpleWall_annihilated (i : I) (l : List I) (x : W) (z : PairProjection.Edge (bottStalkProjection cs (i::l) x) (bottStalkProjection cs (i::l) (cs.simple i*x))) : simpleRootPolynomial (M := M) i • z = 0 := …Mentions: OAI.KLInvariance.PairProjection.Edge, OAI.KLInvariance.TitsSpace.bottStalkProjection, OAI.KLInvariance.TitsSpace.simpleRootPolynomial
- theorem
OAI.KLInvariance.TitsSpace.bottSimpleWall_upper_kernelline 2018Source documentation
The exact integral quotient kernel, without a free-stalk hypothesis.
theorem bottSimpleWall_upper_kernel (i : I) (l : List I) (x : W) (z : bottStalk cs (i::l) (cs.simple i*x)) : PairProjection.upper (bottStalkProjection cs (i::l) x) (bottStalkProjection cs (i::l) (cs.simple i*x)) z = 0 ↔ ∃ n : bottStalk cs (i::l) (cs.simple i*x), z = simpleRootPolynomial (M := M) i • n := …Mentions: OAI.KLInvariance.TitsSpace.bottStalk, OAI.KLInvariance.PairProjection.upper, OAI.KLInvariance.TitsSpace.bottStalkProjection, OAI.KLInvariance.TitsSpace.simpleRootPolynomial
- structure
OAI.KLInvariance.ReflectionPairTranslation.Twistline 2045Source documentation
Restriction of the scalar action along a ring automorphism.
@[ext] structure Twist (_τ : R ≃+* R) (Y : Type z) where …
- def
OAI.KLInvariance.ReflectionPairTranslation.Twist.equivValline 2053 - instance
OAI.KLInvariance.ReflectionPairTranslation.Twist.(instance at line 2058)line 2058 - instance
OAI.KLInvariance.ReflectionPairTranslation.Twist.(instance at line 2059)line 2059 - def
OAI.KLInvariance.ReflectionPairTranslation.Twist.equivline 2063 - instance
OAI.KLInvariance.ReflectionPairTranslation.Twist.(instance at line 2073)line 2073 - def
OAI.KLInvariance.ReflectionPairTranslation.latticeline 2086Source documentation
The old pair relation with the scalar action on its second factor twisted. Alpha-annihilation of the old edge is what makes this an R-submodule.
def lattice : Submodule R (X × Twist τ Y) where …
- theorem
OAI.KLInvariance.ReflectionPairTranslation.lattice_saturatedline 2106Source documentation
Saturation away from the simple wall. Regularity on the old edge module, not an unjustified reflexivity assertion, removes a non-wall factor.
theorem lattice_saturated (β : R) (hann : ∀ e : PairProjection.Edge f g, α • e=0) (hreg : Function.Injective (fun e : PairProjection.Edge f g => β • e)) (p : X × Twist τ Y) : β • p ∈ lattice f g τ α hdiv hinc ↔ p ∈ lattice f g τ α hdiv hinc := by …Mentions: OAI.KLInvariance.PairProjection.Edge, OAI.KLInvariance.ReflectionPairTranslation.Twist, OAI.KLInvariance.ReflectionPairTranslation.lattice
- def
OAI.KLInvariance.ReflectionPairTranslation.leftline 2127Source documentation
Surjective projection to the untwisted (lower) stalk.
def left : lattice f g τ α hdiv hinc →ₗ[R] X := …
Mentions: OAI.KLInvariance.ReflectionPairTranslation.lattice
- theorem
OAI.KLInvariance.ReflectionPairTranslation.left_surjectiveline 2130 - def
OAI.KLInvariance.ReflectionPairTranslation.kernelMapline 2137Source documentation
Its kernel is the alpha-multiple of the twisted upper stalk.
def kernelMap : Twist τ Y →ₗ[R] LinearMap.ker (left f g τ α hdiv hinc) where …
Mentions: OAI.KLInvariance.ReflectionPairTranslation.Twist, OAI.KLInvariance.ReflectionPairTranslation.left
- theorem
OAI.KLInvariance.ReflectionPairTranslation.kernelMap_surjectiveline 2155 - theorem
OAI.KLInvariance.ReflectionPairTranslation.kernelMap_injectiveline 2165 - def
OAI.KLInvariance.ReflectionPairTranslation.kernelEquivline 2171 - theorem
OAI.KLInvariance.ReflectionPairTranslation.free_of_surjective_of_ker_freeline 2178Source documentation
A split extension of free modules is free. This does not assert the false statement that every submodule of a free polynomial module is free.
theorem free_of_surjective_of_ker_free {P : Type*} [AddCommGroup P] [Module R P] {Q : Type*} [AddCommGroup Q] [Module R Q] (π : P →ₗ[R] Q) (hπ : Function.Surjective π) [Module.Free R Q] [Module.Free R (LinearMap.ker π)] : Module.Free R P := by … - theorem
OAI.KLInvariance.ReflectionPairTranslation.lattice_freeline 2206