"Source: Text/Geometry/HypGeomMot.text";
"Line: 677";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/HypGeomMot.text, line: 677
// Example: H138E1 ()
print "Example: H138E1";
ei := GetEchoInput();
SetEchoInput(true);
H := HypergeometricData([1/2],[0]); // weight 0
t := 3/5;
A := ArtinRepresentation(H,t);
D := Discriminant(Integers(Field(A))); // -24
assert IsSquare(D/(t*(t-1))); // Q(sqrt(t(t-1)))
R := ArtinRepresentationQuadratic(-24);
assert A eq R;
//
H := HypergeometricData([1/4,3/4],[0,0]);
Weight(H);
assert $1 eq 1;
DefiningPolynomials(H);
t := 3/2;
E := EllipticCurve(H,t); E;
P := PrimesInInterval(5,100);
&and[EulerFactor(E,p) eq EulerFactor(H,t,p) : p in P];
assert $1;
//
f := CyclotomicPolynomial(6)*CyclotomicPolynomial(2);
g := CyclotomicPolynomial(1)^3;
H := HypergeometricData(f,g); H;
Weight(H);
assert $1 eq 2;
GammaList(H);
GammaArray(H);
[EulerFactor(H,4,p) : p in [5,7,11,13,17,19]];
//
_<u> := FunctionField(Rationals());
H := HypergeometricData([-2,0,0,-1,0,1] : Print:="alpha_beta");
H; // weight 1
HyperellipticCurve(H); // defined over Q(u)
t := 4;
C := Specialization($1,t); // only works over Q(u)
&and[EulerFactor(C,p) eq EulerFactor(H,t,p) : p in P];
assert $1;
//
H := HypergeometricData([0,-1,0,1,0,1,0,-1] : Print:="alpha_beta");
H; // weight 1
MValue(H);
t := 3; // could alternatively specialize later
E := EllipticCurve(H,t); aInvariants(E);
&and[EulerFactor(E,p) eq EulerFactor(H,t,p) : p in P];
assert $1;
SetEchoInput(ei);
