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

add od_from_atlas_group, od_from_p_subgroup, and helpers #3444

Merged
merged 13 commits into from
Feb 28, 2024

Conversation

ThomasBreuer
Copy link
Member

  • od_from_atlas_group(chi) tries to find a suitable representation affording chi in the Atlas of Group Representations, and then to compute the orth. disc. from it
  • od_from_p_subgroup(chi, p) tries to use the restriction of chi to the Sylow p-subgroup
  • add known_class_fusions
  • add optional argument to induced_cyclic
  • add helper possible_permutation_characters_from_sylow_subgroup
  • orbits_group_automorphisms is used to reduce the tests to only one member of each orbit on irreducible characters
  • the new optional min_char argument in isomorphic_group_over_finite_field is used to guarantee that the reduction of an irreducible module is irreducibe
  • the other changes are minor improvements

@fieker These changes are essentially the ones from #3005, which got closed for technical reasons.

@ThomasBreuer ThomasBreuer added the oscar book PRs necessary for the Oscar book label Feb 27, 2024
@ThomasBreuer ThomasBreuer requested a review from fieker February 27, 2024 20:26
# Check equality of positive results in small cases.
l = all_od_infos(comment_matches => "AGR", dim => 1:8);
for entry in l
chi = Oscar.OrthogonalDiscriminants.character_of_entry(entry)
Copy link
Member

Choose a reason for hiding this comment

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

Tests fail in this line:

  Got exception outside of a @test
  MethodError: no method matching getindex(::Nothing, ::Int64)
  Stacktrace:
    [1] character_of_entry(d::Dict{Symbol, Any})
      @ Oscar.OrthogonalDiscriminants ~/work/Oscar.jl/Oscar.jl/experimental/OrthogonalDiscriminants/src/data.jl:234
    [2] macro expansion
      @ ~/work/Oscar.jl/Oscar.jl/experimental/OrthogonalDiscriminants/test/direct.jl:5 [inlined]

@benlorenz
Copy link
Member

We need od_from_p_subgroup for the book.

@benlorenz benlorenz added the backport 1.0.x Should be backported to the release 1.0 branch label Feb 28, 2024
to the dictionaries returned by `all_atlas_group_infos`
i.e., prescribe a minimal characteristic for the returned group,
in order to guarantee that the reduction of an irreducible group
is also irreducible
- improve coercion from quadratic fields into `QQAbField`;
  the check for `is_quadratic_field` is not general enough,
  and evaluation of a field element requires not just some polynomial ring
  but the underlying polynomial ring of the number field
- and add `_embedding` of `QQ` into `QQAbField`, for convenience
- add `known_class_fusions`
- add optional argument to `induced_cyclic`
- add `od_from_p_subgroup`
- add helper `possible_permutation_characters_from_sylow_subgroup`
# Compute the orbits on rows.
row_orbits = Vector{Int}[]
reps = []
poss = []
Copy link
Member

Choose a reason for hiding this comment

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

whenever I see [] I am think "not type stable, beware". We see a bunch of these in this PR. But perhaps it is fine for other reasons -- just wanted to draw your attention to it.

@aaruni96 aaruni96 mentioned this pull request Feb 28, 2024
31 tasks
@fingolfin fingolfin merged commit 556be5a into oscar-system:master Feb 28, 2024
21 of 23 checks passed
@benlorenz
Copy link
Member

@ThomasBreuer I just tried to backport this to finally get that part working but the return value for od_from_p_subgroup is very different from the jlcon in the book.

In the book (expl_syl.jlcon):

julia> ch = character_table("R(27)")[16];

julia> degree(ch)
18278

julia> Oscar.OrthogonalDiscriminants.od_from_p_subgroup(ch, 3)
(true, "-3")

Running this on the current Oscar master gives:

julia> ch = character_table("R(27)")[16];

julia> degree(ch)
18278

julia> Oscar.OrthogonalDiscriminants.od_from_p_subgroup(ch, 3)
(false, "")

@ThomasBreuer
Copy link
Member Author

@benlorenz I cannot reproduce the problem.
In the branch TB_OD_pgroups as well as in the current master, I get the same output as in the jlcon file of the book.

@ThomasBreuer
Copy link
Member Author

@benlorenz Ah, now I understand what happens. In my situation, a newer version of the GAP package CTblLib is used.

@ThomasBreuer ThomasBreuer deleted the TB_OD_pgroups branch February 28, 2024 19:46
benlorenz pushed a commit that referenced this pull request Feb 28, 2024
* add `conductor` for class functions

* add `:constituents` key (if available)

to the dictionaries returned by `all_atlas_group_infos`

* support `min_char` in `isomorphic_group_over_finite_field`

i.e., prescribe a minimal characteristic for the returned group,
in order to guarantee that the reduction of an irreducible group
is also irreducible

* better handling of quadratic fields

- improve coercion from quadratic fields into `QQAbField`;
  the check for `is_quadratic_field` is not general enough,
  and evaluation of a field element requires not just some polynomial ring
  but the underlying polynomial ring of the number field
- and add `_embedding` of `QQ` into `QQAbField`, for convenience

* added `orbits_group_automorphisms` and helpers

* add `od_from_atlas_group` and helper

* add p-group criterion

- add `known_class_fusions`
- add optional argument to `induced_cyclic`
- add `od_from_p_subgroup`
- add helper `possible_permutation_characters_from_sylow_subgroup`

* adjust to the changes in Oscar since November

* now the tests pass again

* `FiniteField` does no longer exist

* use `number_of_conjugacy_classes`

* omit some tests that require AtlasRep at least 2.1.7

* for the moment, leave out tests that need web access

(cherry picked from commit 556be5a)
@benlorenz benlorenz removed the backport 1.0.x Should be backported to the release 1.0 branch label Feb 29, 2024
benlorenz added a commit that referenced this pull request Feb 29, 2024
- Add QQBar docs to the manual #3423
- do not show the OscarInterface banner #3422
- fix bugs in all_OD_infos #3419
- Ep/ Rename Spec to AffineScheme #3345 #3425
- Remove two mentions of Arb_jll #3431
- Tweak epimorphism_from_free_group #3430
- CI: re-enable nightly #3435
- support gen(G::GAPGroup, 0) #3332
- Align all_*_groups methods some more #3433
- Add all_perfect_groups #3434
- Add all_primitive_groups and all_transitive_groups variants taking a single int or int range #3404
- fix a docstring #3436
- Fixes multivariate division #3396
- Docu invariants tori #3428
- Improve docstrings for is_conjugate/is_conjugate_with_data. #3384
- Fix ambient_module(M::SubquoModule) #3448
- Bugfix for printing of affine schemes #3437
- Bugfix for bugfix for printing of affine schemes #3445
- Update OSCAR banner #3410
- Docu invariants lin. red. groups (Lakshmi Ramesh and Wolfram Decker) #3443
- add od_from_atlas_group, od_from_p_subgroup, and helpers #3444
- Unexport normalise #3453
- support group properties for character tables #3449
- add docstrings for acting_group and action_function #3432 (exports are used in new groups code for the book)
- Adjust to renaming of rank(A::FinGenAbGroup) to torsion_free_rank(A::FinGenAbGroup) #3457
- Ensure fp_group(G) transfers group attributes #3464
- Added comment on convention #3467
- Export weierstrass_chart_on_minimal_model and patch transform_to_weierstrass #3458
- Fix a doc signature #3466
- Grading + caching for affine algebra of torus invariants #3469
@benlorenz
Copy link
Member

@benlorenz Ah, now I understand what happens. In my situation, a newer version of the GAP package CTblLib is used.

@ThomasBreuer Does that mean that at some point there will be a new CTbLib package that will be automatically picked up by the current Oscar (without any code changes here) and corrects this output?

@ThomasBreuer
Copy link
Member Author

@benlorenz Sorry for not being precise.
The example works with CTblLib version at least 1.3.5, which has been released in March 2023.
The last released version of GAP (4.12.2) contains only CTblLib 1.3.4, and this is the GAP version that comes with GAP.jl and thus with Oscar.jl.
I had not been aware of this problem. (I had expected that Oscar 1.0 would contain a newer GAP version, which will come with CTblLib at least 1.3.7.)

Forcing a newer version of CTblLib in Oscar does not work because it gets loaded already at startup of GAP.
We could only try to install a new version, and then the next Oscar session will load this one, but that does not help with the CI tests.

(Installing something at runtime is not a good idea. Nevertheless, currently we do this for the "repsn" package. Here the situation is different, this package does not get loaded automatically by GAP, thus Oscar can first try to upgrade and then load the package.)

@benlorenz
Copy link
Member

Maybe we could do something like oscar-system/GAP.jl#855 and make a new package tarball that contains a newer CTblLib (but preferrably not many other changes) for GAP.jl. And then release this in a GAP.jl patch release 0.10.3. This would get picked up by the Oscar 1.0 release automatically and could fix the code that we want to have in the book? (Needs to be tested properly to make sure we don't break anything ...)

@fingolfin
Copy link
Member

We could do that, sure.

Or we wait 1-2 weeks, then GAP 4.13.0 will be out, and will be used in GAP.jl 0.11, and we can use that in OSCAR 1.0.1 or 1.1?

@benlorenz
Copy link
Member

Can't really say how much the GAP minor version bump might affect Oscar and whether we can put this in a patch release but otherwise yes that would work as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
oscar book PRs necessary for the Oscar book
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants