---
# System prepended metadata

title: Types in Hecke

---

# Types in Hecke

Relevant part of the OSCAR documentation: https://docs.oscar-system.org/dev/DeveloperDocumentation/styleguide/#Approved-abbreviations
The following types are exported in Hecke:

## Number field related

| old/current name      | new name | export | description |
|-----------------------|----------|-------------|---|
| NumField | same | | Abstract type for number fields
| NumFieldElem | same | | 
| SimpleNumField | same | | Abstract type for simple number field
| SimpleNumFieldElem | same | | 
| NonSimpleNumField | same | | Abstract type nonsimple number field
| NonSimpleNumFieldElem | same | |
| AnticNumberField      | AbsSimpleNumField |        | Absolute simple number field (Nemo)|
| nf_elem               | AbsSimpleNumFieldElem         |  |   (Nemo) |
| NfAbsNS               | AbsNonSimpleNumField  |         | Absolute non-simple number field       |
| NfAbsNSElem           | AbsNonSimpleNumFieldElem |
| NfRel                 | RelSimpleNumField | | Relative simple number field
| NfRelElem             | RelSimpleNumFieldElem |
| NfRelNS               | RelNonSimpleNumField         | | Relative nonsimple number field
| NfRelNSElem           | RelNonSimpleNumFieldElem |
| NfToNfMor             | NumFieldMor |  | Map between number fields
|
| NumFieldOrd           | NumFieldOrder     | | Abstract type for orders in number fields
| NumFieldOrdElem       | NumFieldOrderElem     |
| NumFieldOrdIdl        | NumFieldOrderIdeal     |
| NumFieldOrdFracIdl    | NumFieldOrderFractionalIdeal     | |
| NfAbsOrd              | AbsNumFieldOrder     | | Order in an absolute number field
| NfAbsOrdElem          | AbsNumFieldOrderElem |
| NfAbsOrdSet           | AbsNumFieldOrderSet         | | Parent for the orders
| NfAbsOrdIdl           | AbsNumFieldOrderIdeal | | Ideal of an order in an absolute number field
| NfAbsOrdIdlSet           | AbsNumFieldOrderIdealSet         | | Parent for ideals
| NfAbsOrdFracIdl           | AbsNumFieldOrderFracionalIdeal | | Fractional ideal of an order in an absolute number field
| NfRelOrd | RelNumFieldOrder | | Order in a relative number field
| NfRelOrdElem | RelNumFieldOrderElem | | 
| NfRelOrdIdl | RelNumFieldOrderIdeal | | Ideal of an order in a relative number field
| NfRelOrdFracIdl | RelNumFieldOrderFracionalIdeal | | Fractional ideal of an order in a relative number field
|
| NfOrd                 |  AbsSimpleNumFieldOrder |        | Alias, maybe delete
| NfOrdElem             | AbsSimpleNumFieldOrder  |        | Alias, maybe delete
| NfOrdIdl              | AbsSimpleNumFieldOrderIdeal |        | Alias, maybe delete
| NfOrdQuoRing          | AbsSimpleNumFieldOrderQuoRing |        | Alias, maybe delete
| NfOrdQuoRingElem      |  AbsSimpleNumFieldOrderQuoRingElem |        | Alias, maybe delete
|
| NumFieldEmbNfAbs | AbsSimpleNumFieldEmbedding | yes | |
| NumFieldEmbNfAbsNS | AbsNonSimpleNumFieldEmbedding | yes | |
| NumFieldEmbNfRel | RelSimpleNumFieldEmbedding | yes | |
| NumFieldEmbNfNS | RelNonSimpleNumFieldEmbedding | yes | |
|
| EmbeddedField         | EmbeddedNumField |        | Embedded number field
| EmbeddedElem          | EmbeddedNumFieldElem  |        | Embedded number field element

## Algebras related

| old/current name      | new name | export | description |
|-----------------------|----------|-------------|---|
| AbsAlgAss | FinDimAssociativeAlgebra | | Abstract type for associative algebras (unitary) |
| AbsAlgAssElem | FinDimAssociativeAlgebraElem | |
| AlgAss                |    StructureConstantAlgebra     | 		| Finite dimensional algebra with structure constants
| AlgAssElem            | AssociativeAlgebraElem  | 		| Element in a finite-dimensional associative algebra 
| AlgGrp                |  GroupAlgebra | 		| Group algebra over finite group
| AlgGrpElem            |  GroupAlgebraElem | 		| Element of group algebra over finite field
| AlgMat                |  MatAlgebra | 		| Matrix algebra
| AlgMatElem            |  MatAlgebraElem | 		| Element of Matrix Algebra
| AlgQuat | QuaternionAlgebra |

## Something with groups

| old/current name      | new name | export | description |
|-----------------------|----------|-------------|---|
| GrpAbFinGen           | FinGenAbGroup |        | Finitely generated abelian group
| GrpAbFinGenElem       | FinGenAbGroupElem |        | Finitely generated abelian group element
| GrpAbFinGenMap        | FinGenAbGroupHom  |        | Morphism between finitely generated abelian groups
| GrpAbToGrpGenMor      | FinGenAbGroupToGroupHom |        | Map from finitely generated abelian group to a group described by multiplication table
| GrpGen                | MultTableGroup     |        | Group described by multiplication table 
| GrpGenElem            | MultTableGroupElem         |        | Element of group with multiplication table 
| GrpGenToGrpAbMor      | MultTableGroupToGroupHom |        | Map from group described by multiplication table to finitely generated abelian group
| GrpGenToGrpGenMor     | MultTableGroupHom  |        | Endomorphism from group described by multiplication table

## Rest

| old/current name      | new name | export | description |
|-----------------------|----------|-------------|---|
| AbstractLat           |          |        | Lattices in quadratic or hermitian spaces
| AbstractSpace         |          |        | Quadratic or hermitian space 
| AbstractSpaceMor      |          | 		| Map between quadratic or hermitian spaces
| AbstractSpaceRes      |          | 		| Restriction of scalars for the maps
| BigComplex            |          | 		| Complex numbers as pairs of BigFloat. @claus: Do we still need this?
| ClassField            |          |        | Class field of number fields
| ComplexOfMorphisms    |          |        | Some homological algebra thing
| CyclotomicExt         |          |  no    | Cyclotomic extension
| Divisor               |          |  no    | (Absolute) function field divisor 
| Divisors              |          |  yes   | Iterator object over divisors
| EllCrv                | EllipticCurve |        | Elliptic curve
| EllCrvPt              | EllipticCurvePoint |        | Point on elliptic curve
|
| FacElem               |          |        | Factorized element
| FacElemMon            |          |        | Monoid of factorized things
| FactorBase            |          |   no   | Internal class group thing
| FakeFmpqMat           |          |        | Rational matrix as a pair. Should be internal, but basis matrix returns this.
| FakeFmpqMatSpace      |          |        | Parent for FakeFmpqMat
| FunFldDiff            |          |   no   | Differential of function field
| GenOrdFracIdl         |          |        | Fractional ideal in a generic order
| HermGenus             |          |        | Hermitian genus
| HermLat               |          |        | Hermitian lattice
| HermLocalGenus        |          |        | Hermitian local genus
| HypellCrv             |          |        | Hyperelliptic curve
| HypellCrvPt           |          |        | Point on hyperelliptic curve
| IdealSet              |          |        | Parent for ideals
| InfPlc                |          |        | Infinite place of number field
| Isogeny               |          |        | Isogeny between elliptic curves
| KInftyElem            |          |   no   | Localization of $K[X]$ at the "infinite place" 
| KInftyRing            |          |   no   | Element of some localization
| KodairaSymbol         |          |        | Kodaira symbol of elliptic curve
| Line                  |          |   no   | Internal type for Line of polygon
| MSet                  |          |        | Multiset
| Map                   |          |        | Coming from AA?
| MapFromFunc           |          |        | Map given by julia functions
| MapRayClassGrp        |          |        | Map describing ray class group
| NewtonPolygon         |          |        | NewtonPolygon
| OrdLoc                |          |        | Localiation of a number field order
| OrdLocElem            |          |        | Element of localization of number field
| Plc                   |          |        | Some abstract overtype for places of number fields?
| Polygon               |          |        | Some type for Polygon
| PrimeIdealsSet        |          |        | Prime ideal iterator of number field
| PrimesSet             |          |        | Prime number iterator
| QuadBin               |          |        | Binary quadratic form
| QuadGenus             |          |        | Quadratic genus
| QuadLat               |          |        | Quadratic lattice
| QuadLocalGenus        |          |        | Quadratic local genus
| SMat                  |          |        | Sparse matrix
| SMatSpace             |          |        | Parent of sparse matrices
| SRow                  |          |        | Sparse row
| TorQuadModule         |          |        | Torsion quadratic module
| TorQuadModuleElem     |          |        | Torsion quadratic module element
| TorQuadModuleMor      |          |        | Morphism between [...]
| VecSpaceRes           |          |        | Some restriction map L^m -> K^n, if L is a finite extesion of K
| ZZGenus               |          |        | Genus of ZZ-lattices
| ZZLat                 |          |        | Quadratic Z-lattice
| ZZLocalGenus          |          |        | Local genus of quadratic Z-lattices
| ZpnGModule            |          |   no   | Finitely generated $\mathbf{Z}/\mathbf{Z}n[G]$-modules

There are also some (a lot of?) non-exported types like AbsAlgAssMor and AlgAss(Abs|Rel)Ord*

## Renaming script

The script is consistent with the above table as of 31-01-2024 15:15

```bash
#!/bin/sh
#

# some settings that avoid weirdness in sed when it tries to
# adapt to your locale (e.g. if your system uses German as system language)
export LANG=C
export LC_CTYPE=C
export LC_ALL=C

# Files to modify (default uses all files known to git,
# but obviously you can modify it)
FILES=$(git ls-files)

# on macOS, you may need to change the following
SED_I="sed -i"
#SED_I="gsed -i"
#SED_I="sed -i ''"

# from https://github.com/Nemocas/AbstractAlgebra.jl/pull/1574

$SED_I \
-e "s;\bMatAlgElem\b;MatRingElem;g" \
-e "s;\bMatAlgebra\b;MatRing;g" \
-e "s;\bMatrixAlgebra\b;matrix_ring;g" \
$FILES

# from https://hackmd.io/nRnyfrSxTVe5CzXidB1cBQ?both#Nemo

$SED_I \
-e "s;\bFlintPadicField\b;PadicField;g" \
-e "s;\bpadic\b;PadicFieldElem;g" \
-e "s;\bFlintQadicField\b;QadicField;g" \
-e "s;\bqadic\b;QadicFieldElem;g" \
-e "s;\barb_poly\b;ArbPolyRingElem;g" \
-e "s;\barb_mat\b;ArbMatrix;g" \
-e "s;\barb\b;ArbFieldElem;g" \
-e "s;\bacb_poly\b;AcbPolyRingElem;g" \
-e "s;\bacb_mat\b;AcbMatrix;g" \
-e "s;\bacb\b;AcbFieldElem;g" \
-e "s;\bca\b;CalciumFieldElem;g" \
-e "s;\bLoc\b;LocalizedEuclideanRing;g" \
-e "s;\bLocElem\b;LocalizedEuclideanRingElem;g" \
-e "s;\blll_ctx\b;LLLContext;g" \
-e "s;\bqqbar\b;QQBarFieldElem;g" \
-e "s;\bCalciumQQBarField\b;QQBarField;g" \
-e "s;\bFlintQQiField\b;QQiField;g" \
-e "s;\bfmpqi\b;QQiFieldElem;g" \
-e "s;\bFlintZZiRing\b;ZZiRing;g" \
-e "s;\bfmpzi\b;ZZiRingElem;g" \
-e "s;\bfmpzUnitRange\b;ZZRingElemUnitRange;g" \
$FILES
#-e "s;\bCalciumField\b;CalciumField;g" \ # no change
#-e "s;\bFac\b;;g" \ # to be decided

# from https://hackmd.io/ONVPdlfARgWzkfkNkcJkgA

# Number field related

$SED_I \
-e "s;\bAnticNumberField\b;AbsSimpleNumField;g" \
-e "s;\bnf_elem\b;AbsSimpleNumFieldElem;g" \
-e "s;\bNfAbsNS\b;AbsNonSimpleNumField;g" \
-e "s;\bNfAbsNSElem\b;AbsNonSimpleNumFieldElem;g" \
-e "s;\bNfRel\b;RelSimpleNumField;g" \
-e "s;\bNfRelElem\b;RelSimpleNumFieldElem;g" \
-e "s;\bNfRelNS\b;RelNonSimpleNumField;g" \
-e "s;\bNfRelNSElem\b;RelNonSimpleNumFieldElem;g" \
-e "s;\bNfToNfMor\b;NumFieldMor;g" \
-e "s;\bNumFieldOrd\b;NumFieldOrder;g" \
-e "s;\bNumFieldOrdElem\b;NumFieldOrderElem;g" \
-e "s;\bNumFieldOrdIdl\b;NumFieldOrderIdeal;g" \
-e "s;\bNumFieldOrdFracIdl\b;NumFieldOrderFractionalIdeal;g" \
-e "s;\bNfAbsOrd\b;AbsNumFieldOrder;g" \
-e "s;\bNfAbsOrdElem\b;AbsNumFieldOrderElem;g" \
-e "s;\bNfAbsOrdSet\b;AbsNumFieldOrderSet;g" \
-e "s;\bNfAbsOrdIdl\b;AbsNumFieldOrderIdeal;g" \
-e "s;\bNfAbsOrdIdlSet\b;AbsNumFieldOrderIdealSet;g" \
-e "s;\bNfAbsOrdFracIdl\b;AbsNumFieldOrderFractionalIdeal;g" \
-e "s;\bNfAbsOrdFracIdlSet\b;AbsNumFieldOrderFractionalIdealSet;g" \
-e "s;\bNfRelOrd\b;RelNumFieldOrder;g" \
-e "s;\bNfRelOrdElem\b;RelNumFieldOrderElem;g" \
-e "s;\bNfRelOrdIdl\b;RelNumFieldOrderIdeal;g" \
-e "s;\bNfRelOrdFracIdl\b;RelNumFieldOrderFractionalIdeal;g" \
-e "s;\bNfAbsNSToNfAbsNS\b;NumFieldAut{AbsNonSimpleNumField};g" \
-e "s;\bNfToNfMor\b;NumFieldAut{AbsSimpleNumField};g" \
-e "s;\bNumFieldMor\b;NumFieldHom;g" \
-e "s;\bNfAbsToNfAbsNS\b;NumFieldHom{AbsSimpleNumField, AbsNonSimpleNumField};g" \
-e "s;\bNfToNfRel\b;NumFieldHom{AbsSimpleNumField, RelSimpleNumField{AbsSimpleNumFieldElem}};g" \
-e "s;\bNfRelToNfRelMor_nf_elem_nf_elem\b;NumFieldHom{RelSimpleNumField{AbsSimpleNumFieldElem}, RelSimpleNumField{AbsSimpleNumFieldElem}};g" \
-e "s;\bNfRelToNf\b;NumFieldHom{RelSimpleNumField{AbsSimpleNumFieldElem}, AbsSimpleNumField};g" \
-e "s;\bNfRelNSToNfRelNSMor_nf_elem\b;NumFieldHom{RelNonSimpleNumField{AbsSimpleNumFieldElem}, RelNonSimpleNumField{AbsSimpleNumFieldElem}};g" \
-e "s;\bNfRelToNfRelNSMor_nf_elem\b;NumFieldHom{RelSimpleNumField{AbsSimpleNumFieldElem}, RelNonSimpleNumField{AbsSimpleNumFieldElem}};g" \
-e "s;\bNfOrd\b;AbsSimpleNumFieldOrder;g" \
-e "s;\bNfOrdElem\b;AbsSimpleNumFieldOrderElem;g" \
-e "s;\bNfOrdIdl\b;AbsSimpleNumFieldOrderIdeal;g" \
-e "s;\bNfOrdFracIdlSet\b;AbsSimpleNumFieldOrderFractionalIdealSet;g" \
-e "s;\bNfOrdFracIdl\b;AbsSimpleNumFieldOrderFractionalIdeal;g" \
-e "s;\bNfOrdQuoRing\b;AbsSimpleNumFieldOrderQuoRing;g" \
-e "s;\bNfOrdQuoRingElem\b;AbsSimpleNumFieldOrderQuoRingElem;g" \
-e "s;\bNumFieldEmbNfAbs\b;AbsSimpleNumFieldEmbedding;g" \
-e "s;\bNumFieldEmbNfAbsNS\b;AbsNonSimpleNumFieldEmbedding;g" \
-e "s;\bNumFieldEmbNfRel\b;RelSimpleNumFieldEmbedding;g" \
-e "s;\bNumFieldEmbNfNS\b;RelNonSimpleNumFieldEmbedding;g" \
$FILES
#-e "s;\bNfOrd\b;;g" \  # Alias, maybe delete \
#-e "s;\bNfOrdElem\b;;g" \ # Alias, maybe delete \
#-e "s;\bNfOrdIdl\b;;g" \ # Alias, maybe delete \
#-e "s;\bNfOrdQuoRing\b;;g" \ # Alias, maybe delete \ 
#-e "s;\bNfOrdQuoRingElem\b;;g" \ # Alias, maybe delete \

# Algebras related

$SED_I \
-e "s;\bAbsAlgAss\b;AbstractAssociativeAlgebra;g" \
-e "s;\bAbsAlgAssElem\b;AbstractAssociativeAlgebraElem;g" \
-e "s;\bAlgAss\b;StructureConstantAlgebra;g" \
-e "s;\bAlgAssElem\b;AssociativeAlgebraElem;g" \
-e "s;\bAlgGrp\b;GroupAlgebra;g" \
-e "s;\bAlgGrpElem\b;GroupAlgebraElem;g" \
-e "s;\bAlgMat\b;MatAlgebra;g" \
-e "s;\bAlgMatElem\b;MatAlgebraElem;g" \
-e "s;\bAlgQuat\b;QuaternionAlgebra;g" \
$FILES

# Something with groups

$SED_I \
-e "s;\bGrpAbFinGen\b;FinGenAbGroup;g" \
-e "s;\bGrpAbFinGenElem\b;FinGenAbGroupElem;g" \
-e "s;\bGrpAbFinGenMap\b;FinGenAbGroupHom;g" \
-e "s;\bGrpAbToGrpGenMor\b;FinGenAbGroupToGroupHom;g" \
-e "s;\bGrpGen\b;MultTableGroup;g" \
-e "s;\bGrpGenElem\b;MultTableGroupElem;g" \
-e "s;\bGrpGenToGrpAbMor\b;MultTableGroupToGroupHom;g" \
-e "s;\bGrpGenToGrpGenMor\b;MultTableGroupHom;g" \
$FILES

# Rest

$SED_I \
-e "s;\bEllCrv\b;EllipticCurve;g" \
-e "s;\bEllCrvPt\b;EllipticCurvePoint;g" \
-e "s;\bEmbeddedField\b;EmbeddedNumField;g" \
-e "s;\bEmbeddedElem\b;EmbeddedNumFieldElem;g" \
$FILES
# -e "s;\bAbstractLat\b;;g"\ #Lattices in quadratic or hermitian spaces
# -e "s;\bAbstractSpace\b;;g"\ #Quadratic or hermitian space
# -e "s;\bAbstractSpaceMor\b;;g"\ #Map between quadratic or hermitian spaces
# -e "s;\bAbstractSpaceRes\b;;g"\ #Restriction of scalars for the maps
# -e "s;\bBigComplex\b;;g"\ #Complex numbers as pairs of BigFloat. @claus: Do we still need this?
# -e "s;\bClassField\b;;g"\ #Class field of number fields
# -e "s;\bComplexOfMorphisms\b;;g"\ #Some homological algebra thing
# -e "s;\bCyclotomicExt\b;;g"\ #Cyclotomic extension
# -e "s;\bDivisor\b;;g"\ #(Absolute) function field divisor
# -e "s;\bDivisors\b;;g"\ # Iterator object over divisors
# -e "s;\bFacElem\b;;g" \ # Factorized element
# lots more undecided things
```