sage: f = kash('X^5 + 4*X^4 - 56*X^2 -16*X + 192')
sage: OK = f.EquationOrder()
sage: OK
Equation Order with defining polynomial X^5 + 4*X^4 - 56*X^2 - 16*X + 192
over Z
sage: f = kash('X^5 + 4*X^4 - 56*X^2 -16*X + 192')
sage: O = f.EquationOrder()
sage: a = O.gen(2)
sage: a
[0, 1, 0, 0, 0]
sage: O.Basis() # output somewhat random
[
_NG.1,
_NG.2,
_NG.3,
_NG.4,
_NG.5
]
sage: O.Discriminant()
1364202618880
sage: O.MaximalOrder() # name sage2 below somewhat random
Maximal Order of sage2
sage: O = kash.MaximalOrder('X^3 - 77')
sage: I = O.Ideal(5,[2, 1, 0])
sage: I # name sage14 below random
Ideal of sage14
Two element generators:
[5, 0, 0]
[2, 1, 0]
sage: F = I.Factorisation() sage: F # name sage14 random [ <Prime Ideal of sage14 Two element generators: [5, 0, 0] [2, 1, 0], 1> ]
Determining whether an ideal is principal.
sage: I.IsPrincipal() FALSE, extended by: ext1 := Unassign
Computation of class groups and unit groups:
sage: f = kash('X^5 + 4*X^4 - 56*X^2 -16*X + 192')
sage: O = kash.EquationOrder(f)
sage: OK = O.MaximalOrder()
sage: OK.ClassGroup() # name sage32 below random
Abelian Group isomorphic to Z/6
Defined on 1 generator
Relations:
6*sage32.1 = 0, extended by:
ext1 := Mapping from: grp^abl: sage32 to ids/ord^num: _AA
sage: U = OK.UnitGroup() sage: U # name sage34 below random Abelian Group isomorphic to Z/2 + Z + Z Defined on 3 generators Relations: 2*sage34.1 = 0, extended by: ext1 := Mapping from: grp^abl: sage34 to ord^num: sage30
sage: kash.Apply('x->%s.ext1(x)'%U.name(), U.Generators().List())
[ [1, -1, 0, 0, 0], [1, 1, 0, 0, 0], [-1, 0, 0, 0, 0] ]
See About this document... for information on suggesting changes.