Skip to content

Commit

Permalink
Update abelian group docs
Browse files Browse the repository at this point in the history
To match with the other documentation.
Also fix one typo.
  • Loading branch information
paemurru committed Oct 8, 2024
1 parent b671e6f commit 4b9b557
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 21 deletions.
12 changes: 6 additions & 6 deletions docs/src/manual/abelian/elements.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ DocTestSetup = quote
using Hecke
end
```
## Elements
# Elements
Elements in a finitely generated abelian group are of type `FinGenAbGroupElem`
and are always given as a linear combination of the generators.
Internally this representation is normliased to have a unique
representative.

### Creation
## Creation
In addition to the standard function `id`, `zero` and `one` that can be
used to create the neutral element, we also support more targeted creation:
```@docs
Expand All @@ -22,22 +22,22 @@ rand(G::FinGenAbGroup)
rand(G::FinGenAbGroup, B::ZZRingElem)
parent(x::FinGenAbGroupElem)
```
### Access
## Access

```@docs
getindex(x::FinGenAbGroupElem, i::Int)
```

### Predicates
## Predicates

We have the standard predicates `iszero`, `isone` and `is_identity`
to test an element for being trivial.

### Invariants
## Invariants
```@docs
order(A::FinGenAbGroupElem)
```
### Iterator
## Iterator
One can iterate over the elements of a finite abelian group.

```@repl
Expand Down
10 changes: 3 additions & 7 deletions docs/src/manual/abelian/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,14 @@ DocTestSetup = quote
using Hecke
end
```
# [Abelian Groups](@id AbelianGroupLink2)

Here we describe the interface to abelian groups in Hecke.

## Introduction
# [Introduction](@id AbelianGroupLink2)

Within Hecke, abelian groups are of generic abstract type `GrpAb` which does not
have to be finitely generated, $\mathbb Q/\mathbb Z$ is an example of a more
general abelian group. Having said that, most of the functionality is
restricted to abelian groups that are finitely presented as $\mathbb Z$-modules.

### Basic Creation
## Basic Creation

Finitely presented (as $\mathbb Z$-modules) abelian groups are of type `FinGenAbGroup`
with elements of type `FinGenAbGroupElem`. The creation is mostly via a relation
Expand Down Expand Up @@ -51,7 +47,7 @@ using Hecke # hide
abelian_groups(8)
```

### Invariants
## Invariants
```@docs
is_snf(A::FinGenAbGroup)
number_of_generators(A::FinGenAbGroup)
Expand Down
2 changes: 1 addition & 1 deletion docs/src/manual/abelian/maps.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ DocTestSetup = quote
using Hecke
end
```
## Maps
# Maps
Maps between abelian groups are mainly of type `FinGenAbGroupHom`. They
allow normal map operations such as `image`, `preimage`, `domain`, `codomain`
and can be created in a variety of situations.
Expand Down
10 changes: 5 additions & 5 deletions docs/src/manual/abelian/structural.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ DocTestSetup = quote
using Hecke
end
```
## Structural Computations
# Structural Computations
Abelian groups support a wide range of structural operations such as
- enumeration of subgroups
- (outer) direct products
Expand All @@ -17,7 +17,7 @@ snf(A::FinGenAbGroup)
Hecke.find_isomorphism(G, op, A::Hecke.GrpAb)
```

### Subgroups and Quotients
## Subgroups and Quotients
```@docs
torsion_subgroup(G::FinGenAbGroup)
sub(G::FinGenAbGroup, s::Vector{FinGenAbGroupElem})
Expand Down Expand Up @@ -81,21 +81,21 @@ The difference between `issubset =` $\subset$ and
intersect(mG::FinGenAbGroupHom, mH::FinGenAbGroupHom)
```

### Direct Products
## Direct Products
```@docs
direct_product(G::FinGenAbGroup...)
canonical_injection(G::FinGenAbGroup, i::Int)
canonical_projection(G::FinGenAbGroup, i::Int)
flat(G::FinGenAbGroup)
```

### Tensor Producs
## Tensor Producs
```@docs
tensor_product(G::FinGenAbGroup...)
hom_tensor(G::FinGenAbGroup, H::FinGenAbGroup, A::Vector{ <: Map{FinGenAbGroup, FinGenAbGroup}})
```

### Hom-Group
## Hom-Group
```@docs
hom(::FinGenAbGroup, ::FinGenAbGroup)
```
Expand Down
2 changes: 1 addition & 1 deletion docs/src/manual/number_fields/conventions.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### Number fields
# Conventions

By an absolute number field we mean finite extensions of $\mathbf Q$, which is
of type `AbsSimpleNumField` and whose elements are of type `AbsSimpleNumFieldElem`. Such an
Expand Down
2 changes: 1 addition & 1 deletion docs/src/manual/orders/orders.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ All of the functions have a very similar interface: they return
an abelian group and a map converting elements of the group
into the objects required. The maps also
allow a point-wise inverse to server as the *discrete logarithm* map.
For more information on abelian group, see [here](@ref AbelianGroupLink2),
For more information on abelian groups, see [here](@ref AbelianGroupLink2),
for ideals, [here](@ref NfOrdIdlLink2).

- [`torsion_unit_group(::AbsSimpleNumFieldOrder)`](@ref)
Expand Down

0 comments on commit 4b9b557

Please sign in to comment.