Zulip Chat Archive
Stream: maths
Topic: subfields
Johan Commelin (Aug 27 2021 at 14:43):
I was thinking a bit about central simple algebras. One fact that is quite useful is the following:
Let be a finite-dimensional central division algebra over a field . Then every maximal subfield of contains and . Moreover, .
Example: take the quaternions over . They contain as subfield. And indeed, .
Johan Commelin (Aug 27 2021 at 14:44):
This lemma suggests that subfield
should be defined for rings R
that are not necessary fields.
Johan Commelin (Aug 27 2021 at 14:45):
Currently docs#subfield is only defined for fields. What would be the best general context to talk about subfields?
Johan Commelin (Aug 27 2021 at 14:46):
Mathematically, any semiring can have a subfield. But those don't always come with a has_inv
. And I can imagine that we want a quasi-computable inverse for these subfields.
Scott Morrison (Aug 27 2021 at 14:46):
Monoid objects in linear monoidal categories? :-) (10% serious.)
Johan Commelin (Aug 27 2021 at 14:46):
Should subfield R
be defined for [semiring R] [has_inv R]
?
Johan Commelin (Aug 27 2021 at 14:47):
It would need extra axioms beyond what it has now, to ensure that the carrier set really is a subfield.
Johan Commelin (Aug 27 2021 at 14:47):
Currently we have
/-- `subfield R` is the type of subfields of `R`. A subfield of `R` is a subset `s` that is a
multiplicative submonoid and an additive subgroup. Note in particular that it shares the
same 0 and 1 as R. -/
structure subfield (K : Type u) [field K] extends subring K :=
(inv_mem' : ∀ x ∈ carrier, x⁻¹ ∈ carrier)
Johan Commelin (Aug 27 2021 at 14:50):
That docstring also seems wrong... it doesn't mention multiplicative inverses at all :see_no_evil:
Johan Commelin (Aug 27 2021 at 14:58):
Just thinking out loud. How about something like (I didn't test this code):
/-- `subfield R` is the type of subfields of `R`. A subfield of `R` is a subset `s` that is
an additive subgroup and a multiplicative submonoid,
and such that every nonzero element has a multiplicative inverse.
Note in particular that it shares the same `0` and `1` as `R`. -/
structure subfield (R : Type u) [ring R] [has_inv R] extends subring R :=
(inv_mem' : ∀ x ∈ carrier, x⁻¹ ∈ carrier)
(inv_mul_self' : ∀ x ∈ carrier, x \ne 0 -> x⁻¹ * x = 1)
(self_mul_inv' : ∀ x ∈ carrier, x \ne 0 -> x * x⁻¹ = 1)
def subfield.mk' {R : Type*} [division_ring R] (S : subring R) (h : ∀ x ∈ S, x⁻¹ ∈ S) :
subfield R :=
{ inv_mem' := h,
inv_mul_self' := by { intros, simp [*] },
self_mul_inv' := by { intros, simp [*] },
.. S }
Anne Baanen (Aug 27 2021 at 14:58):
0
should also be a member of the subfield, no?
Johan Commelin (Aug 27 2021 at 14:58):
extends subring R
takes care of that, right?
Anne Baanen (Aug 27 2021 at 14:59):
Well, inv_mul_self 0
is false currently :P
Johan Commelin (Aug 27 2021 at 14:59):
ooh, lol. I need a x \ne 0
assumption.
Johan Commelin (Aug 27 2021 at 14:59):
Also, I guess semiring
doesn't give me a has_sub
:face_palm: so we need to deal with that as well.
Johan Commelin (Aug 27 2021 at 15:00):
Probably assuming that the ambient structure is a ring
is not a problem in practice
Anne Baanen (Aug 27 2021 at 15:00):
Overall, this seems like a good idea, Also for reasons of speeding up some big unification chains we get when adjoining elements to a complicated field.
Johan Commelin (Aug 27 2021 at 15:02):
ooh, I'm also missing a mul_comm
assumption :face_palm:
Anne Baanen (Aug 27 2021 at 15:02):
What if we tried putting the missing operators in a field of the structure?
/-- `subfield R` is the type of subfields of `R`. A subfield of `R` is a subset `s` that is
an additive subgroup and a multiplicative submonoid,
and such that every nonzero element has a multiplicative inverse.
Note in particular that it shares the same `0` and `1` as `R`. -/
structure subfield (R : Type u) [semiring R] extends subring R :=
(neg : carrier → carrier)
(inv : carrier → carrier)
(inv_mul_self' : ∀ x ≠ 0, inv x * x = 1)
(self_mul_inv' : ∀ x ≠ 0, x * inv x = 1)
Johan Commelin (Aug 27 2021 at 15:03):
Then it's no longer set_like
, is it?
Johan Commelin (Aug 27 2021 at 15:03):
Ooh it should be, given the right axioms on that data.
Anne Baanen (Aug 27 2021 at 15:04):
We could even drop the 0
and 1
and just assume has_add
and has_mul
, but that would be too much :P
Adam Topaz (Aug 27 2021 at 15:10):
What happens if I want to talk about as a subfield of ?
Adam Topaz (Aug 27 2021 at 15:10):
I think the [has_inv R]
is an issue.
Adam Topaz (Aug 27 2021 at 15:10):
Oh yeah, Anne's suggestion would take care of this ;)
Johan Commelin (Aug 27 2021 at 15:12):
Should we do the same with subgroup
, so that we can talk about subgroups of monoids, etc, etc...?
Adam Topaz (Aug 27 2021 at 15:13):
ughh
Johan Commelin (Aug 27 2021 at 15:13):
I guess subfield
(and subdivision_ring
) are maybe the ones that really matter in practice. (E.g. the example that you gave.)
Adam Topaz (Aug 27 2021 at 15:14):
Do we really want to go through all this trouble? Why can't we just use injective morphisms from a field to the semiring?
Eric Wieser (Aug 27 2021 at 17:23):
We solved this for monoids with submonoid (units M)
, right?
Johan Commelin (Aug 27 2021 at 17:42):
Do you mean subgroup (units M)
?
Adam Topaz (Aug 27 2021 at 17:58):
?? Isn't that the type of subgroups of units M
?
Adam Topaz (Aug 27 2021 at 17:59):
(Which is already a group)
Johan Commelin (Aug 27 2021 at 18:46):
Right, but every subgroup of a monoid M
is a subgroup of units M
, at least for a mathematicians version of "is".
Adam Topaz (Aug 27 2021 at 18:52):
But this doesn't hold for subfields of a (semi)ring
Adam Topaz (Aug 27 2021 at 18:52):
(I think?)
Adam Topaz (Aug 27 2021 at 18:58):
E.g. where is a field has both and as subfields, but not .
Eric Wieser (Aug 27 2021 at 19:47):
Yeah, I don't know if there's an analogous construction for subfields, I brought it up in response to the mention of subgroups above.
Kevin Buzzard (Aug 27 2021 at 19:59):
Adam Topaz said:
E.g. where is a field and are both variables has both and as subfields, but not .
I agree -- I guess the tensor product is the localisation of at the submonoid generated by and .
Kevin Buzzard (Aug 27 2021 at 20:01):
How about defining subfield
for division rings? Where else do we take maximal subfields?
Adam Topaz (Aug 27 2021 at 20:02):
Sure, that's what Johan originally was asking about, but I think it's worthwhile to come up with an idea that will work for arbitrary semirings.
Kevin Buzzard (Aug 27 2021 at 20:11):
But division rings will have a div
and semirings don't? What is an example in real life where we demand a div on a subobject of an object which doesn't have a div?
Eric Wieser (Aug 27 2021 at 20:11):
Relaxing field
to division_ring
in subfield should be trivial, shouldn't it?
Kevin Buzzard (Aug 27 2021 at 20:11):
that was why I was mentioning it!
Kevin Buzzard (Aug 27 2021 at 20:12):
It seems to be a very simple solution in the case in hand, and we can just kick the harder question down the road in the hope that nobody ever needs it :-)
Adam Topaz (Aug 27 2021 at 20:14):
In real life fields don't have an inv
, because they're defined as rings satisfying certain (prop-valued) axioms (for a similar reason, fields don't form a variety in the sense of universal algebra), so I can freely say that is a subfield of , even though has no division operation.
Johan Commelin (Aug 28 2021 at 05:41):
Yup, and I think we should support that use case
Kevin Buzzard (Aug 28 2021 at 08:16):
I'm just remarking that it seems harder and although we all know that it could in theory be necessary, nobody came up with a real life example. Galois theory uses subfields and the central simple algebra theory uses division rings.
Eric Wieser (Aug 28 2021 at 08:34):
In general I suppose a common subfield of a non-division_ring is (algebra_map K A).range
?
Eric Wieser (Aug 28 2021 at 08:35):
Which isn't to say there's anything particularly interesting about that subfield, but it's easy to construct
Johan Commelin (Aug 28 2021 at 08:42):
I'll make a PR that generalizes to division rings. We can always generalize further at a later point.
Kevin Buzzard (Aug 28 2021 at 08:59):
Actually, aren't there theorems about maximal subfields of matrix rings? :P
Remember that an integral domain finite-dimensional over a field is a a field, so in e.g. the matrix case you're looking for subfields of M_n(K) which contain K and for this you can just use commutative subrings containing K.
Johan Commelin (Aug 28 2021 at 13:46):
Eric Wieser (Aug 28 2021 at 16:43):
I was expecting the generalization to sub-division_rings, since sub-division_rings of a field are automatically subfields. To my surprise, the PR actually does require commutativity within the subfield. I commented there, but here seems like a better place to discuss.
Do we actually need to talk about commutative subfields of divisionrings? We seem to have survived just fine without commutative submonoids of non-commutative monoids, commutative subgroups of non-commutative groups, etc...
Eric Wieser (Aug 28 2021 at 16:45):
(and by just fine; I mean I remember only one Zulip thread about commutative subgroups, but am on mobile so would be unable to link it if I could find it)
Adam Topaz (Aug 28 2021 at 16:46):
For reference: https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Abelian.20Subgroup/near/242371758
Eric Wieser (Aug 28 2021 at 16:52):
One option would be something like:
class set_like.commutative {A B} [set_like A B] [has_mul A] (S : B) :=
(mul_comm : ∀ x y ∈ S, x * y = y * x)
And then use this to provide more general versions of docs#subfield.to_field, docs#subgroup.to_comm_group, and docs#submonoid.to_comm_monoid and similarly for the additive versions; all of which don't require commutativity of the base type, and only within the subtype.
Johan Commelin (Aug 28 2021 at 17:11):
@Eric Wieser I think we want to be able to talk about maximal subfields of division rings. That's easy with the current approach, because you can simply talk about maximal elements in the lattice subfield K
.
Johan Commelin (Aug 28 2021 at 17:12):
quaternion algebras over contain fields that are degree 2 over .
Johan Commelin (Aug 28 2021 at 17:12):
Those fields are actually quite interesting.
Eric Wieser (Aug 28 2021 at 17:25):
Hmm, I guess otherwise you have to put a lattice structure on { S : subdivision_ring K // set_like.is_commutative S }
which is straightforward but annoying.
Eric Wieser (Aug 28 2021 at 17:27):
My main objection to your approach is it opens the doors to also adding sub_(add_)comm_monoid
and sub_(add_)group
and monoid_hom.crange
and monoid_hom.mcrange
and ...
Eric Wieser (Aug 28 2021 at 17:28):
That is, it appears to scale poorly. But perhaps all the things that it could potentially scale to are mathematically entirely uninteresting.
Johan Commelin (Aug 28 2021 at 17:31):
Yeah, I agree with that point. I don't have a lot of evidence that subfields should be a special case.
Johan Commelin (Sep 06 2021 at 06:43):
Currently #8901 doesn't build. Before fixing it, I think it would be good to reach a concensus about what we want the definition of subfield
to be. I claim they should be commutative.
Notification Bot (Sep 13 2021 at 08:24):
This topic was moved by Johan Commelin to #new members > Elham Mazaheri
Last updated: Dec 20 2023 at 11:08 UTC