Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This PR adds the notion of torsion element of a group and and the notion of torsion-free group to the library. Furthermore, it adds a short discussion on the notion of elements of finite order, which looks too strong from a constructive point of view. --------- Co-authored-by: Fredrik Bakke <fredrbak@gmail.com>
- Loading branch information
1 parent
e947b75
commit b712ce3
Showing
12 changed files
with
424 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
# Nonzero integers | ||
|
||
```agda | ||
module elementary-number-theory.nonzero-integers where | ||
``` | ||
|
||
<details><summary>Imports</summary> | ||
|
||
```agda | ||
open import elementary-number-theory.integers | ||
open import elementary-number-theory.natural-numbers | ||
|
||
open import foundation.coproduct-types | ||
open import foundation.dependent-pair-types | ||
open import foundation.identity-types | ||
open import foundation.negation | ||
open import foundation.propositions | ||
open import foundation.subtypes | ||
open import foundation.universe-levels | ||
``` | ||
|
||
</details> | ||
|
||
## Idea | ||
|
||
An [integer](elementary-number-theory.integers.md) `k` is said to be **nonzero** | ||
if the [proposition](foundation.propositions.md) | ||
|
||
```text | ||
¬ (k = 0) | ||
``` | ||
|
||
holds. | ||
|
||
## Definition | ||
|
||
### The predicate of being a nonzero integer | ||
|
||
```agda | ||
is-nonzero-prop-ℤ : ℤ → Prop lzero | ||
is-nonzero-prop-ℤ k = neg-Prop' (k = zero-ℤ) | ||
|
||
is-nonzero-ℤ : ℤ → UU lzero | ||
is-nonzero-ℤ k = type-Prop (is-nonzero-prop-ℤ k) | ||
|
||
is-prop-is-nonzero-ℤ : (k : ℤ) → is-prop (is-nonzero-ℤ k) | ||
is-prop-is-nonzero-ℤ k = is-prop-type-Prop (is-nonzero-prop-ℤ k) | ||
``` | ||
|
||
### The nonzero integers | ||
|
||
```agda | ||
nonzero-ℤ : UU lzero | ||
nonzero-ℤ = type-subtype is-nonzero-prop-ℤ | ||
|
||
module _ | ||
(k : nonzero-ℤ) | ||
where | ||
|
||
int-nonzero-ℤ : ℤ | ||
int-nonzero-ℤ = pr1 k | ||
|
||
is-nonzero-nonzero-ℤ : is-nonzero-ℤ int-nonzero-ℤ | ||
is-nonzero-nonzero-ℤ = pr2 k | ||
``` | ||
|
||
### The nonzero integer `1` | ||
|
||
```agda | ||
is-nonzero-one-ℤ : is-nonzero-ℤ one-ℤ | ||
is-nonzero-one-ℤ () | ||
|
||
one-nonzero-ℤ : nonzero-ℤ | ||
pr1 one-nonzero-ℤ = one-ℤ | ||
pr2 one-nonzero-ℤ = is-nonzero-one-ℤ | ||
``` | ||
|
||
## Properties | ||
|
||
### The inclusion of natural numbers into integers maps nonzero natural numbers to nonzero integers | ||
|
||
```agda | ||
is-nonzero-int-ℕ : (n : ℕ) → is-nonzero-ℕ n → is-nonzero-ℤ (int-ℕ n) | ||
is-nonzero-int-ℕ zero-ℕ H p = H refl | ||
``` | ||
|
||
### Positive integers are nonzero | ||
|
||
```agda | ||
is-nonzero-is-positive-ℤ : (x : ℤ) → is-positive-ℤ x → is-nonzero-ℤ x | ||
is-nonzero-is-positive-ℤ (inr (inr x)) H () | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# Elements of finite order | ||
|
||
```agda | ||
module group-theory.elements-of-finite-order-groups where | ||
``` | ||
|
||
<details><summary>Imports</summary> | ||
|
||
```agda | ||
open import elementary-number-theory.group-of-integers | ||
open import elementary-number-theory.nonzero-integers | ||
|
||
open import foundation.existential-quantification | ||
open import foundation.propositions | ||
open import foundation.universe-levels | ||
|
||
open import group-theory.groups | ||
open import group-theory.orders-of-elements-groups | ||
open import group-theory.subgroups | ||
open import group-theory.subgroups-generated-by-elements-groups | ||
``` | ||
|
||
</details> | ||
|
||
## Idea | ||
|
||
An element `x` of a [group](group-theory.groups.md) `G` is said to be of | ||
**finite order** if the [subgroup](group-theory.subgroups.md) `order x` of | ||
[`ℤ`](elementary-number-theory.group-of-integers.md) is | ||
[generated by](group-theory.subgroups-generated-by-elements-groups.md) a | ||
[nonzero integer](elementary-number-theory.nonzero-integers.md). | ||
|
||
Note that the condition of being of finite order is slightly stronger than the | ||
condition of being a [torsion element](group-theory.torsion-elements-groups.md). | ||
The latter condition merely asserts that there | ||
[exists](foundation.existential-quantification.md) a nonzero integer in the | ||
subgroup `order x` of `ℤ`. | ||
|
||
## Definitions | ||
|
||
### The predicate of being an element of finite order | ||
|
||
```agda | ||
module _ | ||
{l1 : Level} (G : Group l1) (x : type-Group G) | ||
where | ||
|
||
has-finite-order-element-prop-Group : Prop l1 | ||
has-finite-order-element-prop-Group = | ||
∃-Prop | ||
( nonzero-ℤ) | ||
( λ k → | ||
has-same-elements-Subgroup ℤ-Group | ||
( subgroup-element-Group ℤ-Group (int-nonzero-ℤ k)) | ||
( subgroup-order-element-Group G x)) | ||
``` | ||
|
||
## See also | ||
|
||
- [Torsion elements](group-theory.torsion-elements-groups.md) of groups. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.