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 DD be a finite-dimensional central division algebra over a field KK. Then every maximal subfield EE of DD contains KK and dimK(D)=dimK(E)2=n2\dim_K(D) = \dim_K(E)^2 = n^2. Moreover, EKDMatn(E)E \otimes_K D \cong \text{Mat}_n(E).

Example: take the quaternions H\mathbb H over R\R. They contain R(i)C\R(i) \cong \mathbb C as subfield. And indeed, dim(H)=4=22=dim(C)2\dim(\mathbb H) = 4 = 2^2 = \dim(\mathbb C)^2.

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 Q[2]\mathbb{Q}[\sqrt{2}] as a subfield of Q[X,Y]/(X22)\mathbb{Q}[X,Y]/(X^2-2)?

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. k(t)kk(s)k(t) \otimes_k k(s) where kk is a field has both k(s)k(s) and k(t)k(t) as subfields, but not k(s,t)k(s,t).

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. k(t)kk(s)k(t) \otimes_k k(s) where kk is a field and s,ts,t are both variables has both k(s)k(s) and k(t)k(t) as subfields, but not k(s,t)k(s,t).

I agree -- I guess the tensor product is the localisation of k[s,t]k[s,t] at the submonoid generated by ss and tt.

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 Q\mathbb{Q} is a subfield of Q[X]\mathbb{Q}[X], even though Q[X]\mathbb{Q}[X] 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):

#8901

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 Q\mathbb Q contain fields that are degree 2 over Q\mathbb Q.

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