{-# OPTIONS --safe --warning=error #-} open import Groups.Definition open import Orders open import Numbers.Integers open import Setoids.Setoids open import LogicalFormulae open import Sets.FinSet open import Functions open import Numbers.Naturals open import IntegersModN open import Rings.Examples.Examples open import PrimeNumbers open import Groups.Groups2 open import Groups.CyclicGroups module Groups.Examples.Examples where elementPowZ : (n : ℕ) → (elementPower ℤGroup (nonneg 1) n) ≡ nonneg n elementPowZ zero = refl elementPowZ (succ n) rewrite elementPowZ n = refl ℤCyclic : CyclicGroup ℤGroup CyclicGroup.generator ℤCyclic = nonneg 1 CyclicGroup.cyclic ℤCyclic {nonneg x} = inl (x , elementPowZ x) CyclicGroup.cyclic ℤCyclic {negSucc x} = inr (succ x , ans) where ans : additiveInverseZ (nonneg 1 +Z elementPower ℤGroup (nonneg 1) x) ≡ negSucc x ans rewrite elementPowZ x = refl elementPowZn : (n : ℕ) → {pr : 0