Skip to content
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

Subfields generated by a set #4553

Merged
merged 16 commits into from
Jan 14, 2025
Merged

Subfields generated by a set #4553

merged 16 commits into from
Jan 14, 2025

Conversation

tirix
Copy link
Contributor

@tirix tirix commented Jan 10, 2025

As discussed with @savask in #4246, this introduces the definition of the subfield generated by a set. This can be later used to build such fields as $ℚ[\sqrt{2}]$.

A few "deduction mode" algebra theorems moved to main.

@savask
Copy link
Contributor

savask commented Jan 10, 2025

Ah, that's nice, I was actually going to reply to your message in #4246 .

You define fldGen in such a way, that the result is a field (i.e. a structure). I've noticed that in set.mm the practice seems to be that, for example, a subgroup is a subset of the group which is a group when equipped with the original operation, see SubGrp, similarly, a subring is a subset (see SubRing). A ring, spanned by a subset is also a subset, see RingSpan, and a submonoid generated by some subset also seems to be defined in terms of subsets (see gsumwspan and a related notion of a Moore closure). Maybe fields should also follow suit?

@tirix
Copy link
Contributor Author

tirix commented Jan 10, 2025

Yes, maybe that's better.
I'll revise this proposal in that sense. The theorem fldgenfld will then be:

   fldgenfld $p |- ( ph -> ( F |`s ( F fldGen S ) ) e. Field ) $=

It's a bit more verbose, but I guess maybe other theorems will be simpler.

@tirix tirix marked this pull request as draft January 10, 2025 11:55
@savask
Copy link
Contributor

savask commented Jan 10, 2025

The theorem fldgenfld will then be:

Now, since we have SubGrp and SubRing, maybe we should have a SubField? Then fldgenfld could be restated like

|- ( ph -> ( F fldGen S ) e. ( SubField ` F ) )

Also if you like, we could continue fleshing out the plan in #4246 and maybe we'll see which definitions are more comfortable for proving the metamath 100 theorem.

@tirix
Copy link
Contributor Author

tirix commented Jan 10, 2025

Now, since we have SubGrp and SubRing, maybe we should have a SubField? Then fldgenfld could be restated like

Actually, we already have df-sdrg, which is already sufficient to express subfields. Since a field is commutative, any sub-division-ring is also commutative, and the sub-division-rings of fields are themselves fields, so they are subfields. Surprisingly, I did not see this statement in set.mm, I should also add it (if it's actually correct!)

I should use this in the definition of subfields generated by a set, this will be even more compact.
Maybe we can continue to discuss here the definition of the subfield generated by a set, and continue the discussion about which theorems from the Galois Theory are needed for trisecting the angle in #4246 ? As you prefer!

@savask
Copy link
Contributor

savask commented Jan 10, 2025

SubDRing is a great find, I think it dispels my last doubts and the subfield generated by a set should itself be a set (like a subgroup, a subring and a sub-division-ring). I've noticed that there are some results about the prime field, like primefldcl, so if everything works out correctly, one could show that the prime field is a subfield generated by 1.

And sure, we can discuss this definition here - I'll reserve some other thoughts to the original issue though :-)

@tirix tirix marked this pull request as ready for review January 11, 2025 12:02
@tirix
Copy link
Contributor Author

tirix commented Jan 11, 2025

@savask This is the updated version. I'm quite happy with this. I suppose many theorems using this concept will also be valid in division rings, so the first few theorems are proved with division rings.

@savask
Copy link
Contributor

savask commented Jan 11, 2025

Looks good to me as well!

set.mm Outdated Show resolved Hide resolved
set.mm Outdated Show resolved Hide resolved
set.mm Outdated Show resolved Hide resolved
set.mm Outdated Show resolved Hide resolved
@tirix tirix requested a review from benjub January 13, 2025 09:36
set.mm Outdated Show resolved Hide resolved
set.mm Outdated Show resolved Hide resolved
set.mm Outdated Show resolved Hide resolved
this is a subfield (see ~ fldgenfld and ~ fldsdrgfld ). In general this
will be used in the context of fields, hence the name ` fldGen ` .
(Contributed by Saveliy Skresanov and Thierry Arnoux, 9-Jan-2025.) $)
df-fldgen $a |- fldGen = ( f e. _V , s e. _V |->
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

f e. Ring (see above why not "DivRing") rather than f e. _V

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's an interesting point (specifying the domain : let's keep the discussion about DivRing vs. Ring elsewhere).

The list of definitions using _V where a stricter structure was available is very long (gsum, oppc, lub, glb, +f, freeMnd, -g, invg, .g, Cntz, cntr, LSSum...) This also includes LSpan, which is the model for this definition.

There are also examples where the domain is defined, of course, but my feeling is that they are in minority.

I believe I saw at one point in time a comment from Norm or Mario explaining that we prefer the most general case (_V), but I can't find it anymore. That was probably useful e.g. when we introduced Magma, I believe less definitions/theorems needed to be reviewed thanks to the use of _V as a domain for several functions listed above.

That's why I chose _V here. Of course this is open to discussion.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand that remark and I know that that style of common in set.mm. I still disagree with it. But this can be deferred to later discussions. Non-blocking for this PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe I saw at one point in time a comment from Norm or Mario explaining that we prefer the most general case (_V), but I can't find it anymore. That was probably useful e.g. when we introduced Magma, I believe less definitions/theorems needed to be reviewed thanks to the use of _V as a domain for several functions listed above.

Yes, I also remember the advice (by Mario, I think) to use _V instead of a concrete class. In Graph Theory, for example, we have UnivVtx = ( g e. _V |-> ... instead of UnivVtx = ( g e. UHGraph |-> .... Maybe @digama0 can give a hint where this discussion took place, or where this pattern is documented. If it is not documented, we should add it to our conventions.

set.mm Show resolved Hide resolved
set.mm Show resolved Hide resolved
set.mm Outdated Show resolved Hide resolved
set.mm Show resolved Hide resolved
set.mm Outdated Show resolved Hide resolved
@tirix tirix requested a review from benjub January 13, 2025 13:23
commutative (resp., are fields) ( ~ fldsdrgfld ), so we do not make a
specific definition for subfields. (Contributed by Stefan O'Rear,
3-Oct-2015.) TODO: extend this definition to a function with domain
` _V ` or at least ` Ring ` and not only ` DivRing ` . $)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
` _V ` or at least ` Ring ` and not only ` DivRing ` . $)
` Ring ` and not only ` DivRing ` . $)

I understand your remark, and I know that we do a lot of things like that in set.mm, but I still think that it makes no sense to allow nonsensical things like "the set of sub-division-rings of { 2 } ".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(As you want for the present PR. Non-blocking.)

Copy link
Contributor Author

@tirix tirix Jan 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but you could imagine defining a sub-division-ring of something that's not even a ring. For example, QQ is a division ring which is a subset of the extended real numbers RR*s which is not even a group, but has the necessary structures and operations.
Isn't this similar to searching sub-division-rings starting with rings which are not themselves division rings?

Anyway, again, in practice, I don't think this will be used on anything else than fields. If you prefer to restrict the domain to something, Ring is a good choice because it the most generic structure with two operations (but then again why not e.g. semi-rings SRing?).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this similar to searching sub-division-rings starting with rings which are not themselves division rings?

The reason I gave above to use rings instead of division rings as the ambient structure is added simplicity rather than added generality. Of course, one can always find a more general setting, by doing what is called "centipede mathematics", but if it comes at the cost of simplicity, this may not be worth it.

@tirix
Copy link
Contributor Author

tirix commented Jan 13, 2025

@benjub I don't think there is any blocking point left for this PR, thanks for all the comments!

I plan rework the definition of SubDRing in a subsequent PR to use Ring instead of DivRing, and use this Ring restriction in the definition of "subfield generated by a set".

A more general discussion about whether we should restrict at all the domain for such functions can be launched separately.

@tirix tirix merged commit 389a55a into metamath:develop Jan 14, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants