Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
54da061
Reorganize signed arithmetic on rational numbers
lowasser Oct 10, 2025
124c9f6
make pre-commit
lowasser Oct 10, 2025
7603bbe
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 11, 2025
80ed53f
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 12, 2025
9dc460a
Update
lowasser Oct 12, 2025
fac3bc7
Merge remote-tracking branch 'origin/shake-out-signed-rational' into …
lowasser Oct 12, 2025
0f28ea3
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 12, 2025
e7c6423
Progress
lowasser Oct 14, 2025
79e3441
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 14, 2025
9963c47
Updates
lowasser Oct 14, 2025
617ae3a
Merge remote-tracking branch 'origin/shake-out-signed-rational' into …
lowasser Oct 14, 2025
41e9741
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 14, 2025
d9d056a
Merge branch 'shake-out-signed-rational' into powers-q
lowasser Oct 14, 2025
817f878
More properties
lowasser Oct 14, 2025
984d8d4
Back out integer powers
lowasser Oct 14, 2025
a69f766
Fixes
lowasser Oct 15, 2025
a3a1866
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 15, 2025
ea3fa12
Fix merge
lowasser Oct 15, 2025
5b44912
Merge branch 'shake-out-signed-rational' into powers-q
lowasser Oct 15, 2025
c7176d6
make pre-commit
lowasser Oct 15, 2025
e8b468a
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 15, 2025
df308e2
Fix merge
lowasser Oct 15, 2025
607eba5
Apply suggestions from code review
lowasser Oct 17, 2025
daa9fc0
Respond to review comments
lowasser Oct 17, 2025
a172df5
Merge branch 'master' into shake-out-signed-rational
lowasser Oct 17, 2025
fbfc0e0
Merge branch 'shake-out-signed-rational' into powers-q
lowasser Oct 17, 2025
e3af1cf
Merge branch 'shake-out-signed-rational' into powers-q
lowasser Oct 17, 2025
0905e0f
Progress
lowasser Oct 17, 2025
0651841
Clarify concept disambiguation
lowasser Oct 17, 2025
d3ffdcf
Merge branch 'powers-q' into powers-all-q
lowasser Oct 17, 2025
e0a24b8
Progress
lowasser Oct 17, 2025
c5b3be8
Further clarify doc
lowasser Oct 17, 2025
139c496
Merge branch 'powers-q' into powers-all-q
lowasser Oct 17, 2025
a8c35cd
Progress
lowasser Oct 17, 2025
cf5019c
Merge branch 'master' into powers-q
lowasser Oct 17, 2025
3793aca
Merge branch 'powers-q' into powers-all-q
lowasser Oct 17, 2025
906c3fb
Progress
lowasser Oct 17, 2025
0bf288f
Merge branch 'master' into powers-all-q
lowasser Oct 17, 2025
92b42a5
Correct superscripts
lowasser Oct 17, 2025
978b504
Progress
lowasser Oct 17, 2025
930459d
Merge branch 'powers-all-q' into geo-seq-ring
lowasser Oct 17, 2025
e332e19
Sums of geometric series for rational numbers
lowasser Oct 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/commutative-algebra.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ open import commutative-algebra.formal-power-series-commutative-semirings public
open import commutative-algebra.full-ideals-commutative-rings public
open import commutative-algebra.function-commutative-rings public
open import commutative-algebra.function-commutative-semirings public
open import commutative-algebra.geometric-sequences-commutative-rings public
open import commutative-algebra.geometric-sequences-commutative-semirings public
open import commutative-algebra.groups-of-units-commutative-rings public
open import commutative-algebra.homomorphisms-commutative-rings public
open import commutative-algebra.homomorphisms-commutative-semirings public
Expand Down
311 changes: 311 additions & 0 deletions src/commutative-algebra/geometric-sequences-commutative-rings.lagda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,311 @@
# Geometric sequences in commutative rings

```agda
module commutative-algebra.geometric-sequences-commutative-rings where
```

<details><summary>Imports</summary>

```agda
open import commutative-algebra.commutative-rings
open import commutative-algebra.commutative-semirings
open import commutative-algebra.geometric-sequences-commutative-semirings
open import commutative-algebra.powers-of-elements-commutative-rings

open import elementary-number-theory.natural-numbers

open import foundation.action-on-identifications-binary-functions
open import foundation.action-on-identifications-functions
open import foundation.binary-transport
open import foundation.dependent-pair-types
open import foundation.function-extensionality
open import foundation.function-types
open import foundation.homotopies
open import foundation.identity-types
open import foundation.propositions
open import foundation.sets
open import foundation.universe-levels

open import group-theory.arithmetic-sequences-semigroups

open import lists.finite-sequences
open import lists.sequences
```

</details>

## Ideas

A
{{#concept "geometric sequence" Disambiguation="in a commutative semiring" Agda=geometric-sequence-Commutative-Ring}}
in a [semiring](ring-theory.semirings.md) is an
[geometric sequence](ring-theory.geometric-sequences-semirings.md) in the
semiring multiplicative [semigroup](group-theory.semigroups.md).

These are sequences of the form `n ↦ a * rⁿ`, for elements `a`, `r` in the
semiring.

## Definitions

### Geometric sequences in semirings

```agda
module _
{l : Level} (R : Commutative-Ring l)
where

geometric-sequence-Commutative-Ring : UU l
geometric-sequence-Commutative-Ring =
geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)

is-geometric-sequence-Commutative-Ring :
sequence (type-Commutative-Ring R) → UU l
is-geometric-sequence-Commutative-Ring =
is-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)

module _
{l : Level} (R : Commutative-Ring l)
(u : geometric-sequence-Commutative-Ring R)
where

seq-geometric-sequence-Commutative-Ring : ℕ → type-Commutative-Ring R
seq-geometric-sequence-Commutative-Ring =
seq-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( u)

is-geometric-seq-geometric-sequence-Commutative-Ring :
is-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( seq-geometric-sequence-Commutative-Ring)
is-geometric-seq-geometric-sequence-Commutative-Ring =
is-geometric-seq-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( u)

common-ratio-geometric-sequence-Commutative-Ring :
type-Commutative-Ring R
common-ratio-geometric-sequence-Commutative-Ring =
common-ratio-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( u)

is-common-ratio-geometric-sequence-Commutative-Ring :
( n : ℕ) →
( seq-geometric-sequence-Commutative-Ring (succ-ℕ n)) =
( mul-Commutative-Ring
( R)
( seq-geometric-sequence-Commutative-Ring n)
( common-ratio-geometric-sequence-Commutative-Ring))
is-common-ratio-geometric-sequence-Commutative-Ring =
is-common-ratio-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( u)

initial-term-geometric-sequence-Commutative-Ring :
type-Commutative-Ring R
initial-term-geometric-sequence-Commutative-Ring =
initial-term-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( u)
```

### The standard geometric sequences in a semiring

The standard geometric sequence with initial term `a` and common factor `r` is
the sequence `u` defined by:

- `u₀ = a`
- `uₙ₊₁ = uₙ * r`

```agda
module _
{l : Level} (R : Commutative-Ring l) (a r : type-Commutative-Ring R)
where

standard-geometric-sequence-Commutative-Ring :
geometric-sequence-Commutative-Ring R
standard-geometric-sequence-Commutative-Ring =
standard-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( a)
( r)

seq-standard-geometric-sequence-Commutative-Ring :
ℕ → type-Commutative-Ring R
seq-standard-geometric-sequence-Commutative-Ring =
seq-geometric-sequence-Commutative-Ring R
standard-geometric-sequence-Commutative-Ring

is-geometric-standard-geometric-sequence-Commutative-Ring :
is-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( seq-standard-geometric-sequence-Commutative-Ring)
is-geometric-standard-geometric-sequence-Commutative-Ring =
is-geometric-seq-geometric-sequence-Commutative-Ring R
standard-geometric-sequence-Commutative-Ring
```

### The geometric sequences `n ↦ a * rⁿ`

```agda
module _
{l : Level} (R : Commutative-Ring l) (a r : type-Commutative-Ring R)
where

mul-pow-nat-Commutative-Ring : ℕ → type-Commutative-Ring R
mul-pow-nat-Commutative-Ring n =
mul-Commutative-Ring R a (power-Commutative-Ring R n r)

geometric-mul-pow-nat-Commutative-Ring : geometric-sequence-Commutative-Ring R
geometric-mul-pow-nat-Commutative-Ring =
geometric-mul-pow-nat-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( a)
( r)

initial-term-mul-pow-nat-Commutative-Ring : type-Commutative-Ring R
initial-term-mul-pow-nat-Commutative-Ring =
initial-term-geometric-sequence-Commutative-Ring
( R)
( geometric-mul-pow-nat-Commutative-Ring)

eq-initial-term-mul-pow-nat-Commutative-Ring :
initial-term-mul-pow-nat-Commutative-Ring = a
eq-initial-term-mul-pow-nat-Commutative-Ring =
right-unit-law-mul-Commutative-Ring R a
```

## Properties

### Any geometric sequence in a semiring is homotopic to a standard geometric sequence

```agda
module _
{l : Level} (R : Commutative-Ring l)
(u : geometric-sequence-Commutative-Ring R)
where

htpy-seq-standard-geometric-sequence-Commutative-Ring :
( seq-geometric-sequence-Commutative-Ring R
( standard-geometric-sequence-Commutative-Ring R
( initial-term-geometric-sequence-Commutative-Ring R u)
( common-ratio-geometric-sequence-Commutative-Ring R u))) ~
( seq-geometric-sequence-Commutative-Ring R u)
htpy-seq-standard-geometric-sequence-Commutative-Ring =
htpy-seq-standard-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( u)
```

### The nth term of a geometric sequence with initial term `a` and common ratio `r` is `a * rⁿ`

```agda
module _
{l : Level} (R : Commutative-Ring l) (a r : type-Commutative-Ring R)
where

htpy-mul-pow-standard-geometric-sequence-Commutative-Ring :
mul-pow-nat-Commutative-Ring R a r ~
seq-standard-geometric-sequence-Commutative-Ring R a r
htpy-mul-pow-standard-geometric-sequence-Commutative-Ring =
htpy-mul-pow-standard-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( a)
( r)

initial-term-standard-geometric-sequence-Commutative-Ring :
seq-standard-geometric-sequence-Commutative-Ring R a r 0 = a
initial-term-standard-geometric-sequence-Commutative-Ring =
( inv (htpy-mul-pow-standard-geometric-sequence-Commutative-Ring 0)) ∙
( eq-initial-term-mul-pow-nat-Commutative-Ring R a r)
```

```agda
module _
{l : Level} (R : Commutative-Ring l)
(u : geometric-sequence-Commutative-Ring R)
where

htpy-mul-pow-geometric-sequence-Commutative-Ring :
mul-pow-nat-Commutative-Ring
( R)
( initial-term-geometric-sequence-Commutative-Ring R u)
( common-ratio-geometric-sequence-Commutative-Ring R u) ~
seq-geometric-sequence-Commutative-Ring R u
htpy-mul-pow-geometric-sequence-Commutative-Ring n =
( htpy-mul-pow-standard-geometric-sequence-Commutative-Ring
( R)
( initial-term-geometric-sequence-Commutative-Ring R u)
( common-ratio-geometric-sequence-Commutative-Ring R u)
( n)) ∙
( htpy-seq-standard-geometric-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( u)
( n))
```

### Constant sequences are geometric with common ratio one

```agda
module _
{l : Level} (R : Commutative-Ring l) (a : type-Commutative-Ring R)
where

geometric-const-sequence-Commutative-Ring :
geometric-sequence-Commutative-Ring R
geometric-const-sequence-Commutative-Ring =
geometric-const-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( a)
```

### Finite geometric sequences

```agda
module _
{l : Level} (R : Commutative-Ring l) (a r : type-Commutative-Ring R)
where

standard-geometric-fin-sequence-Commutative-Ring :
(n : ℕ) → fin-sequence (type-Commutative-Ring R) n
standard-geometric-fin-sequence-Commutative-Ring =
fin-sequence-sequence
( seq-standard-geometric-sequence-Commutative-Ring R a r)

sum-standard-geometric-fin-sequence-Commutative-Ring :
(n : ℕ) → type-Commutative-Ring R
sum-standard-geometric-fin-sequence-Commutative-Ring =
sum-standard-geometric-fin-sequence-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( a)
( r)
```

### The sum of a finite geometric sequence

```agda
module _
{l : Level} (R : Commutative-Ring l) (a r : type-Commutative-Ring R)
where

abstract
compute-sum-standard-geometric-fin-sequence-succ-Commutative-Ring :
(n : ℕ) →
sum-standard-geometric-fin-sequence-Commutative-Ring R
( a)
( r)
( succ-ℕ n) =
add-Commutative-Ring R
( a)
( mul-Commutative-Ring R
( r)
( sum-standard-geometric-fin-sequence-Commutative-Ring R a r n))
compute-sum-standard-geometric-fin-sequence-succ-Commutative-Ring =
compute-sum-standard-geometric-fin-sequence-succ-Commutative-Semiring
( commutative-semiring-Commutative-Ring R)
( a)
( r)
```
Loading
Loading