Skip to content

Commit e2a2c64

Browse files
authored
Merge pull request #6447 from LMFDB/main
main -> dev
2 parents 1a44223 + 64f4968 commit e2a2c64

8 files changed

Lines changed: 320 additions & 297 deletions

File tree

lmfdb/galois_groups/templates/gg-show-group.html

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ <h2>{{KNOWL('group.complex_character_table', 'Character table')}}</h2>
118118

119119
<p>{{place_code('char_table')}}</p>
120120

121-
122121
{% if info.int_reps %}
123122
<h2>{{ KNOWL('gg.int_modules', title='Indecomposable integral representations') }}</h2>
124123
<table>
@@ -165,4 +164,20 @@ <h2>{{ KNOWL('gg.int_modules', title='Indecomposable integral representations')
165164
{% endif %}
166165
{% endif %}
167166

167+
<h2>{{ KNOWL('gg.regular_extension', title='Regular extensions') }}</h2>
168+
{% if not info.wgg.regulars %}
169+
<p>Data not computed</p>
170+
{% else %}
171+
<p>
172+
<table>
173+
{% for model in info.wgg.regulars %}
174+
<tr><td style="vertical-align: top">$f_{ {{ loop.index }} } =$</td>
175+
<td> {{ model[0]|safe }}</td></tr>
176+
<tr><td></td><td> {{ model[1]|safe }}</td></tr>
177+
{% endfor %}
178+
</table>
179+
</p>
180+
{% endif %}
181+
182+
168183
{% endblock %}

lmfdb/galois_groups/transitive_group.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import yaml
99
from flask import render_template
1010

11-
from lmfdb.utils import list_to_latex_matrix, integer_divisors, sparse_cyclotomic_to_mathml
11+
from lmfdb.utils import list_to_latex_matrix, integer_divisors, sparse_cyclotomic_to_mathml, raw_typeset, display_knowl
1212
from lmfdb.groups.abstract.main import abstract_group_namecache, abstract_group_display_knowl
1313
from lmfdb.groups.abstract.web_groups import WebAbstractGroup
1414

@@ -74,6 +74,16 @@ def cyclestrings(perm):
7474
def compress_cycle_type(ct):
7575
bits = [(str(z), f'^{{{c}}}' if c > 1 else '' ) for z, c in sorted(Counter(ct).items(),reverse=True)]
7676
return ','.join(z + e for z,e in bits)
77+
78+
def quick_latex(s):
79+
str = s.replace('*',' ')
80+
str = str.replace('(',r'\left(')
81+
str = str.replace(')',r'\right)')
82+
# multidigit exponents
83+
str = re.sub(r'\^\s*(\d+)', r'^{\1}',str)
84+
return '$'+str+'$'
85+
86+
7787
############ Galois group object
7888

7989

@@ -248,6 +258,28 @@ def can_chartable(self):
248258
return False
249259
return self.wag.complex_characters_known
250260

261+
@lazy_attribute
262+
def regulars(self):
263+
t = list(db.gps_regular_polynomials.search({'label':self.label})) # it will be a short list
264+
if t:
265+
genknowl = display_knowl("gg.generic_polynomial", "generic")
266+
267+
def msg(code):
268+
if code is None:
269+
return ''
270+
if code == []:
271+
return f' is {genknowl} for any base field $K$'
272+
if code == [0]:
273+
return fr' is {genknowl} for the base field $\Q$'
274+
code = ','.join(str(z) for z in code)
275+
return fr' is {genknowl} for any base field $K$ of characteristic $\neq$ {code}'
276+
277+
regdata = [(raw_typeset(z['polynomial'], quick_latex(z['polynomial'])), msg(z.get('generic'))) for z in t]
278+
for j, (poly, msg) in enumerate(regdata):
279+
if msg:
280+
regdata[j] = (poly, f'The polynomial $f_{{{j+1}}}$ {msg}')
281+
return regdata
282+
251283
def chartable(self):
252284
self.conjclasses # called to load info in self
253285
return render_template("character-table.html", gp=self,

lmfdb/siegel_modular_forms/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
def body_class():
1313
return {'body_class': 'smf'}
1414

15+
1516
from . import siegel_modular_form
16-
assert siegel_modular_form #silence pyflakes
17+
assert siegel_modular_form # silence pyflakes
1718

1819
app.register_blueprint(smf_page, url_prefix='/ModularForm/GSp/Q')

lmfdb/siegel_modular_forms/family.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
import inspect
1111
from .sample import Samples
1212

13+
1314
def get_smf_families():
1415
return [SiegelFamily(doc['name'], doc) for doc in db.smf_families.search({})]
1516

17+
1618
def get_smf_family(name):
1719
try:
1820
return SiegelFamily(name)
@@ -27,7 +29,7 @@ class SiegelFamily (SageObject):
2729

2830
def __init__(self, name, doc=None):
2931
if doc is None:
30-
doc = db.smf_families.lucky({ 'name': name })
32+
doc = db.smf_families.lucky({'name': name})
3133
if not doc:
3234
raise ValueError('Siegel modular form family "%s" not found in database' % (name))
3335
self.name = name
@@ -40,13 +42,13 @@ def __init__(self, name, doc=None):
4042
self.degree = doc.get('degree')
4143
self.dim_args_default = doc.get('dim_args_default')
4244
module = importlib.import_module('lmfdb.siegel_modular_forms.dimensions')
43-
self.__dimension = module.__dict__.get('dimension_'+name)
45+
self.__dimension = module.__dict__.get('dimension_' + name)
4446
if self.__dimension:
4547
args = inspect.getfullargspec(self.__dimension).args
4648
self.__dimension_glossary = self.__dimension.__doc__
47-
self.__dimension_desc = { 'name': name,
48-
'args': args
49-
}
49+
self.__dimension_desc = {'name': name,
50+
'args': args
51+
}
5052
else:
5153
self.__dimension_desc = None
5254
self.__dimension_glossary = None

lmfdb/siegel_modular_forms/family_data.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,49 +11,49 @@
1111
{
1212
"name": "Gamma0_3",
1313
"degree": 2,
14-
"dim_args_default": { "k": "0..20" },
14+
"dim_args_default": {"k": "0..20"},
1515
"latex_name": "M_k\\left(\\Gamma_0(3)\\right)",
1616
"order": 80
1717
},
1818
{
1919
"name": "Gamma0_3_psi_3",
2020
"degree": 2,
21-
"dim_args_default": { "k": "0..20" },
21+
"dim_args_default": {"k": "0..20"},
2222
"latex_name": "M_k\\left(\\Gamma_0(3),\\psi_3\\right)",
2323
"order": 90
2424
},
2525
{
2626
"name": "Gamma0_4_half",
2727
"degree": 2,
28-
"dim_args_default": { "k": "1..20" },
28+
"dim_args_default": {"k": "1..20"},
2929
"latex_name": "M_{k-1/2}\\left(\\Gamma_0(4)\\right)",
3030
"order": 108
3131
},
3232
{
3333
"name": "Gamma0_4",
3434
"degree": 2,
35-
"dim_args_default": { "k": "0..20" },
35+
"dim_args_default": {"k": "0..20"},
3636
"latex_name": "M_k\\left(\\Gamma_0(4)\\right)",
3737
"order": 100
3838
},
3939
{
4040
"name": "Gamma0_4_psi_4",
4141
"degree": 2,
42-
"dim_args_default": { "k": "0..40" },
42+
"dim_args_default": {"k": "0..40"},
4343
"latex_name": "M_k\\left(\\Gamma_0(4),\\psi_4\\right)",
4444
"order": 105
4545
},
4646
{
4747
"name": "Gamma1_2",
4848
"degree": 2,
49-
"dim_args_default": { "k": "4..10", "j": "2" },
49+
"dim_args_default": {"k": "4..10", "j": "2"},
5050
"latex_name": "M_{k,j}\\left(\\Gamma_1(2)\\right)",
5151
"order": 60
5252
},
5353
{
5454
"name": "Gamma_2",
5555
"degree": 2,
56-
"dim_args_default": { "k": "4..10", "j": "2" },
56+
"dim_args_default": {"k": "4..10", "j": "2"},
5757
"latex_name": "M_{k,j}\\left(\\Gamma(2)\\right)",
5858
"order": 70
5959
},
@@ -66,35 +66,35 @@
6666
{
6767
"name": "Sp4Z_2",
6868
"degree": 2,
69-
"dim_args_default": { "k": "4..24" },
69+
"dim_args_default": {"k": "4..24"},
7070
"latex_name": "M_{k,2}\\left(\\textrm{Sp}(4,\\mathbb{Z})\\right)",
7171
"order": 30
7272
},
7373
{
7474
"name": "Sp4Z_j",
7575
"degree": 2,
76-
"dim_args_default": { "k": "4..24", "j": "4" },
76+
"dim_args_default": {"k": "4..24", "j": "4"},
7777
"latex_name": "M_{k,j}\\left(\\textrm{Sp}(4,\\mathbb{Z})\\right)",
7878
"order": 40
7979
},
8080
{
8181
"name": "Sp4Z",
8282
"degree": 2,
83-
"dim_args_default": { "k": "0..20" },
83+
"dim_args_default": {"k": "0..20"},
8484
"latex_name": "M_k\\left({\\textrm{Sp}}(4,\\mathbb{Z})\\right)",
8585
"order": 10
8686
},
8787
{
8888
"name": "Sp6Z",
8989
"degree": 3,
90-
"dim_args_default": { "k": "0..20" },
90+
"dim_args_default": {"k": "0..20"},
9191
"latex_name": "M_{k}\\left(\\textrm{Sp}(6,\\mathbb{Z})\\right)",
9292
"order": 130
9393
},
9494
{
9595
"name": "Sp8Z",
9696
"degree": 4,
97-
"dim_args_default": { "k": "0..16" },
97+
"dim_args_default": {"k": "0..16"},
9898
"latex_name": "M_k\\left(\\textrm{Sp}(8,\\mathbb{Z})\\right)",
9999
"order": 140
100100
},

0 commit comments

Comments
 (0)