-
Notifications
You must be signed in to change notification settings - Fork 251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Merged by Bors] - feat(LinearAlgebra): the Erdős-Kaplansky theorem #9159
Conversation
refine Finset.sum_eq_zero fun i hi ↦ ?_ | ||
replace eq0 := congr_arg L.subtype (congr_fun eq0 ⟨i, hi⟩) | ||
rw [Finset.sum_apply, map_sum] at eq0 | ||
have : SMulCommClass Lᵐᵒᵖ K K := ⟨fun _ _ _ ↦ mul_assoc _ _ _⟩ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this SMulCommClass exist somewhere in mathlib? either as an instance, or at least
as something that can be invoked right away?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The action of Lᵐᵒᵖ
on K
is itself obtained manually earlier in the proof rather than automatically:
letI := Module.compHom K (RingHom.op L.subtype)
So we can't expect Lean to know about the SMulCommClass here. I think mathlib currently lack actions by MulOpposite of subobjects and it feels like a big project to add them all, although actions by subobjects of MulOpposite should already be obtainable via typeclass inference, but we seem to be lacking a Subring analogue of Subgroup.op.
rw [e.rank_eq, e.toEquiv.cardinal_eq] | ||
apply rank_pi_infinite | ||
|
||
theorem lift_rank_lt_rank_dual' {V : Type v} [AddCommGroup V] [Module K V] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(untested) can this theorem be proved as a lt_of_le_of_lt from a general lift_le type lemma, and the Erdös-Kaplansky?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure what you have in mind? The main content of this proof is that any field K is Nontrivial, so r < 2^r ≤ #(K^r) = rank_K(K^r)
(where r = Module.rank K V
and the equality is by Erdös-Kaplansky).
This PR/issue depends on: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, one minor comment.
bors d+
erw [nat_lt_lift_iff, one_lt_iff_nontrivial] | ||
infer_instance | ||
|
||
theorem lift_rank_lt_rank_dual {K : Type u} {V : Type v} [Field K] [AddCommGroup V] [Module K V] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we have versions of these last two results in the equi-universic setting, that avoid the Cardinal.lift
?
Maybe they should have a '
in their name, and the results should come with docstrings that cross-ref each other.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Certainly! No need of '
, just remove lift
from the names. (I use '
for the division ring version and no '
for the field version in this PR.)
✌️ alreadydone can now approve this pull request. To approve and merge a pull request, simply reply with |
As this PR is labelled bors merge |
The dimension of an infinite dimensional dual space is equal to its cardinality. As a consequence (`linearEquiv_dual_iff_finiteDimensional`), a vector space is isomorphic to its dual iff it's finite dimensional. The [main argument](https://github.com/leanprover-community/mathlib4/pull/9159/files#diff-cb173017e1157ddc4b9f868be06c18ec2a38f8cf82e856e18d59ed49f97395d8R146) is from https://mathoverflow.net/a/168624. There is a [slicker proof](https://mathoverflow.net/a/420455/3332) in the field case but Vandermonde determinants don't work in a non-commutative ring. Resolves [TODO item](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Dual.html#TODO) posed by Julian Külshammer - [x] depends on: #8941 - [x] depends on: #8942 Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
Pull request successfully merged into master. Build succeeded: |
The dimension of an infinite dimensional dual space is equal to its cardinality. As a consequence (
linearEquiv_dual_iff_finiteDimensional
), a vector space is isomorphic to its dual iff it's finite dimensional.The main argument is from https://mathoverflow.net/a/168624. There is a slicker proof in the field case but Vandermonde determinants don't work in a non-commutative ring.
Resolves TODO item posed by Julian Külshammer
Subfield.closure
#8942