diff --git a/src/commutative-algebra.lagda.md b/src/commutative-algebra.lagda.md index db76ba0076..d56e4effe8 100644 --- a/src/commutative-algebra.lagda.md +++ b/src/commutative-algebra.lagda.md @@ -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 diff --git a/src/commutative-algebra/geometric-sequences-commutative-rings.lagda.md b/src/commutative-algebra/geometric-sequences-commutative-rings.lagda.md new file mode 100644 index 0000000000..9343e05ed8 --- /dev/null +++ b/src/commutative-algebra/geometric-sequences-commutative-rings.lagda.md @@ -0,0 +1,310 @@ +# Geometric sequences in commutative rings + +```agda +module commutative-algebra.geometric-sequences-commutative-rings where +``` + +
Imports + +```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 +``` + +
+ +## Ideas + +A +{{#concept "geometric sequence" Disambiguation="in a commutative ring" Agda=geometric-sequence-Commutative-Ring}} +in a [commutative ring](commutative-algebra.commutative-rings.md) is an +[geometric sequence](ring-theory.geometric-sequences-semirings.md) in the ring's +multiplicative [semigroup](group-theory.semigroups.md). + +These are sequences of the form `n ↦ a * rⁿ`, for elements `a`, `r` in the ring. + +## Definitions + +### Geometric sequences in commutative rings + +```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 commutative ring + +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 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) +``` diff --git a/src/commutative-algebra/geometric-sequences-commutative-semirings.lagda.md b/src/commutative-algebra/geometric-sequences-commutative-semirings.lagda.md new file mode 100644 index 0000000000..1e4b7ed9f9 --- /dev/null +++ b/src/commutative-algebra/geometric-sequences-commutative-semirings.lagda.md @@ -0,0 +1,446 @@ +# Geometric sequences in commutative semirings + +```agda +module commutative-algebra.geometric-sequences-commutative-semirings where +``` + +
Imports + +```agda +open import commutative-algebra.commutative-semirings +open import commutative-algebra.powers-of-elements-commutative-semirings +open import commutative-algebra.sums-of-finite-sequences-of-elements-commutative-semirings + +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 + +open import ring-theory.geometric-sequences-semirings +open import ring-theory.powers-of-elements-semirings +open import ring-theory.semirings + +open import univalent-combinatorics.standard-finite-types +``` + +
+ +## Ideas + +A +{{#concept "geometric sequence" Disambiguation="in a commutative semiring" Agda=geometric-sequence-Commutative-Semiring}} +in a [commutative semiring](commutative-algebra.commutative-semirings.md) is an +[geometric sequence](ring-theory.geometric-sequences-semirings.md) in the +semiring's 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 commutative semirings + +```agda +module _ + {l : Level} (R : Commutative-Semiring l) + where + + geometric-sequence-Commutative-Semiring : UU l + geometric-sequence-Commutative-Semiring = + geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + + is-geometric-sequence-Commutative-Semiring : + sequence (type-Commutative-Semiring R) → UU l + is-geometric-sequence-Commutative-Semiring = + is-geometric-sequence-Semiring (semiring-Commutative-Semiring R) + +module _ + {l : Level} (R : Commutative-Semiring l) + (u : geometric-sequence-Commutative-Semiring R) + where + + seq-geometric-sequence-Commutative-Semiring : ℕ → type-Commutative-Semiring R + seq-geometric-sequence-Commutative-Semiring = + seq-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( u) + + is-geometric-seq-geometric-sequence-Commutative-Semiring : + is-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( seq-geometric-sequence-Commutative-Semiring) + is-geometric-seq-geometric-sequence-Commutative-Semiring = + is-geometric-seq-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( u) + + common-ratio-geometric-sequence-Commutative-Semiring : + type-Commutative-Semiring R + common-ratio-geometric-sequence-Commutative-Semiring = + common-ratio-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( u) + + is-common-ratio-geometric-sequence-Commutative-Semiring : + ( n : ℕ) → + ( seq-geometric-sequence-Commutative-Semiring (succ-ℕ n)) = + ( mul-Commutative-Semiring + ( R) + ( seq-geometric-sequence-Commutative-Semiring n) + ( common-ratio-geometric-sequence-Commutative-Semiring)) + is-common-ratio-geometric-sequence-Commutative-Semiring = + is-common-ratio-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( u) + + initial-term-geometric-sequence-Commutative-Semiring : + type-Commutative-Semiring R + initial-term-geometric-sequence-Commutative-Semiring = + initial-term-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( u) +``` + +### The standard geometric sequences in a commutative 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-Semiring l) (a r : type-Commutative-Semiring R) + where + + standard-geometric-sequence-Commutative-Semiring : + geometric-sequence-Commutative-Semiring R + standard-geometric-sequence-Commutative-Semiring = + standard-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( a) + ( r) + + seq-standard-geometric-sequence-Commutative-Semiring : + ℕ → type-Commutative-Semiring R + seq-standard-geometric-sequence-Commutative-Semiring = + seq-geometric-sequence-Commutative-Semiring R + standard-geometric-sequence-Commutative-Semiring + + is-geometric-standard-geometric-sequence-Commutative-Semiring : + is-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( seq-standard-geometric-sequence-Commutative-Semiring) + is-geometric-standard-geometric-sequence-Commutative-Semiring = + is-geometric-seq-geometric-sequence-Commutative-Semiring R + standard-geometric-sequence-Commutative-Semiring +``` + +### The geometric sequences `n ↦ a * rⁿ` + +```agda +module _ + {l : Level} (R : Commutative-Semiring l) (a r : type-Commutative-Semiring R) + where + + mul-pow-nat-Commutative-Semiring : ℕ → type-Commutative-Semiring R + mul-pow-nat-Commutative-Semiring n = + mul-Commutative-Semiring R a (power-Commutative-Semiring R n r) + + geometric-mul-pow-nat-Commutative-Semiring : + geometric-sequence-Commutative-Semiring R + geometric-mul-pow-nat-Commutative-Semiring = + geometric-mul-pow-nat-Semiring (semiring-Commutative-Semiring R) a r + + initial-term-mul-pow-nat-Commutative-Semiring : type-Commutative-Semiring R + initial-term-mul-pow-nat-Commutative-Semiring = + initial-term-geometric-sequence-Commutative-Semiring + ( R) + ( geometric-mul-pow-nat-Commutative-Semiring) + + eq-initial-term-mul-pow-nat-Commutative-Semiring : + initial-term-mul-pow-nat-Commutative-Semiring = a + eq-initial-term-mul-pow-nat-Commutative-Semiring = + right-unit-law-mul-Commutative-Semiring R a +``` + +## Properties + +### Any geometric sequence is homotopic to a standard geometric sequence + +```agda +module _ + {l : Level} (R : Commutative-Semiring l) + (u : geometric-sequence-Commutative-Semiring R) + where + + htpy-seq-standard-geometric-sequence-Commutative-Semiring : + ( seq-geometric-sequence-Commutative-Semiring R + ( standard-geometric-sequence-Commutative-Semiring R + ( initial-term-geometric-sequence-Commutative-Semiring R u) + ( common-ratio-geometric-sequence-Commutative-Semiring R u))) ~ + ( seq-geometric-sequence-Commutative-Semiring R u) + htpy-seq-standard-geometric-sequence-Commutative-Semiring = + htpy-seq-standard-geometric-sequence-Semiring + ( semiring-Commutative-Semiring 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-Semiring l) (a r : type-Commutative-Semiring R) + where + + htpy-mul-pow-standard-geometric-sequence-Commutative-Semiring : + mul-pow-nat-Commutative-Semiring R a r ~ + seq-standard-geometric-sequence-Commutative-Semiring R a r + htpy-mul-pow-standard-geometric-sequence-Commutative-Semiring = + htpy-mul-pow-standard-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( a) + ( r) + + initial-term-standard-geometric-sequence-Commutative-Semiring : + seq-standard-geometric-sequence-Commutative-Semiring R a r 0 = a + initial-term-standard-geometric-sequence-Commutative-Semiring = + ( inv (htpy-mul-pow-standard-geometric-sequence-Commutative-Semiring 0)) ∙ + ( eq-initial-term-mul-pow-nat-Commutative-Semiring R a r) +``` + +```agda +module _ + {l : Level} (R : Commutative-Semiring l) + (u : geometric-sequence-Commutative-Semiring R) + where + + htpy-mul-pow-geometric-sequence-Commutative-Semiring : + mul-pow-nat-Commutative-Semiring + ( R) + ( initial-term-geometric-sequence-Commutative-Semiring R u) + ( common-ratio-geometric-sequence-Commutative-Semiring R u) ~ + seq-geometric-sequence-Commutative-Semiring R u + htpy-mul-pow-geometric-sequence-Commutative-Semiring n = + ( htpy-mul-pow-standard-geometric-sequence-Commutative-Semiring + ( R) + ( initial-term-geometric-sequence-Commutative-Semiring R u) + ( common-ratio-geometric-sequence-Commutative-Semiring R u) + ( n)) ∙ + ( htpy-seq-standard-geometric-sequence-Semiring + ( semiring-Commutative-Semiring R) + ( u) + ( n)) +``` + +### Constant sequences are geometric with common ratio one + +```agda +module _ + {l : Level} (R : Commutative-Semiring l) (a : type-Commutative-Semiring R) + where + + geometric-const-sequence-Commutative-Semiring : + geometric-sequence-Commutative-Semiring R + geometric-const-sequence-Commutative-Semiring = + geometric-const-sequence-Semiring (semiring-Commutative-Semiring R) a +``` + +### Finite geometric sequences + +```agda +module _ + {l : Level} (R : Commutative-Semiring l) (a r : type-Commutative-Semiring R) + where + + standard-geometric-fin-sequence-Commutative-Semiring : + (n : ℕ) → fin-sequence (type-Commutative-Semiring R) n + standard-geometric-fin-sequence-Commutative-Semiring = + fin-sequence-sequence + ( seq-standard-geometric-sequence-Commutative-Semiring R a r) + + sum-standard-geometric-fin-sequence-Commutative-Semiring : + (n : ℕ) → type-Commutative-Semiring R + sum-standard-geometric-fin-sequence-Commutative-Semiring n = + sum-fin-sequence-type-Commutative-Semiring R n + ( standard-geometric-fin-sequence-Commutative-Semiring n) +``` + +### The sum of a finite geometric sequence + +```agda +module _ + {l : Level} (R : Commutative-Semiring l) (a r : type-Commutative-Semiring R) + where + + abstract + compute-sum-standard-geometric-fin-sequence-succ-Commutative-Semiring : + (n : ℕ) → + sum-standard-geometric-fin-sequence-Commutative-Semiring R + ( a) + ( r) + ( succ-ℕ n) = + add-Commutative-Semiring R + ( a) + ( mul-Commutative-Semiring R + ( r) + ( sum-standard-geometric-fin-sequence-Commutative-Semiring R a r n)) + compute-sum-standard-geometric-fin-sequence-succ-Commutative-Semiring n = + equational-reasoning + sum-standard-geometric-fin-sequence-Commutative-Semiring R + ( a) + ( r) + ( succ-ℕ n) + = + add-Commutative-Semiring R + ( standard-geometric-fin-sequence-Commutative-Semiring R + ( a) + ( r) + ( succ-ℕ n) + ( zero-Fin n)) + ( sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + standard-geometric-fin-sequence-Commutative-Semiring R + ( a) + ( r) + ( succ-ℕ n) + ( inr-Fin n i))) + by + snoc-sum-fin-sequence-type-Commutative-Semiring R n + ( standard-geometric-fin-sequence-Commutative-Semiring R + ( a) + ( r) + ( succ-ℕ n)) + ( refl) + = + add-Commutative-Semiring R + ( seq-standard-geometric-sequence-Commutative-Semiring R a r 0) + ( sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + seq-standard-geometric-sequence-Commutative-Semiring R + ( a) + ( r) + ( succ-ℕ (nat-Fin n i)))) + by + ap-add-Commutative-Semiring R + ( ap + ( seq-standard-geometric-sequence-Commutative-Semiring R a r) + ( is-zero-nat-zero-Fin {n})) + ( htpy-sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + ap + ( seq-standard-geometric-sequence-Commutative-Semiring R + ( a) + ( r)) + ( nat-inr-Fin n i))) + = + add-Commutative-Semiring R + ( a) + ( sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + mul-Commutative-Semiring R + ( a) + ( power-Commutative-Semiring R (succ-ℕ (nat-Fin n i)) r))) + by + ap-add-Commutative-Semiring R + ( initial-term-standard-geometric-sequence-Commutative-Semiring + ( R) + ( a) + ( r)) + ( htpy-sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + inv + ( htpy-mul-pow-standard-geometric-sequence-Commutative-Semiring + ( R) + ( a) + ( r) + ( succ-ℕ (nat-Fin n i))))) + = + add-Commutative-Semiring R + ( a) + ( sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + mul-Commutative-Semiring R + ( a) + ( mul-Commutative-Semiring R + ( r) + ( power-Commutative-Semiring R (nat-Fin n i) r)))) + by + ap-add-Commutative-Semiring R + ( refl) + ( htpy-sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + ap-mul-Commutative-Semiring R + ( refl) + ( power-succ-Commutative-Semiring' R (nat-Fin n i) r))) + = + add-Commutative-Semiring R + ( a) + ( sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + mul-Commutative-Semiring R + ( r) + ( mul-Commutative-Semiring R + ( a) + ( power-Commutative-Semiring R (nat-Fin n i) r)))) + by + ap-add-Commutative-Semiring R + ( refl) + ( htpy-sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → left-swap-mul-Commutative-Semiring R _ _ _)) + = + add-Commutative-Semiring R + ( a) + ( mul-Commutative-Semiring R + ( r) + ( sum-fin-sequence-type-Commutative-Semiring R n + ( λ i → + mul-Commutative-Semiring R + ( a) + ( power-Commutative-Semiring R (nat-Fin n i) r)))) + by + ap-add-Commutative-Semiring R + ( refl) + ( inv + ( left-distributive-mul-sum-fin-sequence-type-Commutative-Semiring + ( R) + ( n) + ( r) + ( _))) + = + add-Commutative-Semiring R + ( a) + ( mul-Commutative-Semiring R + ( r) + ( sum-standard-geometric-fin-sequence-Commutative-Semiring R + ( a) + ( r) + ( n))) + by + ap-add-Commutative-Semiring R + ( refl) + ( ap-mul-Commutative-Semiring R + ( refl) + ( htpy-sum-fin-sequence-type-Commutative-Semiring R n + ( htpy-mul-pow-standard-geometric-sequence-Commutative-Semiring + ( R) + ( a) + ( r) ∘ + nat-Fin n))) +``` diff --git a/src/commutative-algebra/powers-of-elements-commutative-semirings.lagda.md b/src/commutative-algebra/powers-of-elements-commutative-semirings.lagda.md index 0bda772d1a..a5727d03a8 100644 --- a/src/commutative-algebra/powers-of-elements-commutative-semirings.lagda.md +++ b/src/commutative-algebra/powers-of-elements-commutative-semirings.lagda.md @@ -51,6 +51,21 @@ module _ power-succ-Semiring (semiring-Commutative-Semiring A) ``` +### `xⁿ⁺¹ = xxⁿ` + +```agda +module _ + {l : Level} (A : Commutative-Semiring l) + where + + power-succ-Commutative-Semiring' : + (n : ℕ) (x : type-Commutative-Semiring A) → + power-Commutative-Semiring A (succ-ℕ n) x = + mul-Commutative-Semiring A x (power-Commutative-Semiring A n x) + power-succ-Commutative-Semiring' = + power-succ-Semiring' (semiring-Commutative-Semiring A) +``` + ### Powers by sums of natural numbers are products of powers ```agda diff --git a/src/elementary-number-theory.lagda.md b/src/elementary-number-theory.lagda.md index bb74acf279..9177a7585e 100644 --- a/src/elementary-number-theory.lagda.md +++ b/src/elementary-number-theory.lagda.md @@ -85,6 +85,7 @@ open import elementary-number-theory.finitary-natural-numbers public open import elementary-number-theory.finitely-cyclic-maps public open import elementary-number-theory.fundamental-theorem-of-arithmetic public open import elementary-number-theory.geometric-sequences-positive-rational-numbers public +open import elementary-number-theory.geometric-sequences-rational-numbers public open import elementary-number-theory.goldbach-conjecture public open import elementary-number-theory.greatest-common-divisor-integers public open import elementary-number-theory.greatest-common-divisor-natural-numbers public diff --git a/src/elementary-number-theory/geometric-sequences-rational-numbers.lagda.md b/src/elementary-number-theory/geometric-sequences-rational-numbers.lagda.md new file mode 100644 index 0000000000..d59c56016e --- /dev/null +++ b/src/elementary-number-theory/geometric-sequences-rational-numbers.lagda.md @@ -0,0 +1,203 @@ +# Geometric sequences of rational numbers + +```agda +{-# OPTIONS --lossy-unification #-} + +module elementary-number-theory.geometric-sequences-rational-numbers where +``` + +
Imports + +```agda +open import commutative-algebra.geometric-sequences-commutative-rings +open import commutative-algebra.sums-of-finite-sequences-of-elements-commutative-rings + +open import elementary-number-theory.addition-rational-numbers +open import elementary-number-theory.additive-group-of-rational-numbers +open import elementary-number-theory.difference-rational-numbers +open import elementary-number-theory.multiplication-rational-numbers +open import elementary-number-theory.multiplicative-group-of-rational-numbers +open import elementary-number-theory.natural-numbers +open import elementary-number-theory.powers-rational-numbers +open import elementary-number-theory.rational-numbers +open import elementary-number-theory.ring-of-rational-numbers + +open import foundation.identity-types +open import foundation.negated-equality +open import foundation.universe-levels + +open import group-theory.groups + +open import lists.sequences + +open import order-theory.strictly-increasing-sequences-strictly-preordered-sets +``` + +
+ +## Idea + +A +{{#concept "geometric sequence" Disambiguation="of rational numbers" Agda=geometric-sequence-ℚ}} +of [rational numbers](elementary-number-theory.positive-rational-numbers.md) is +a +[geometric sequence](commutative-algebra.geometric-sequences-commutative-rings.md) +in the +[commutative ring of rational numbers](elementary-number-theory.ring-of-rational-numbers.md). + +## Definitions + +```agda +geometric-sequence-ℚ : UU lzero +geometric-sequence-ℚ = geometric-sequence-Commutative-Ring commutative-ring-ℚ + +seq-geometric-sequence-ℚ : geometric-sequence-ℚ → sequence ℚ +seq-geometric-sequence-ℚ = + seq-geometric-sequence-Commutative-Ring commutative-ring-ℚ + +standard-geometric-sequence-ℚ : ℚ → ℚ → geometric-sequence-ℚ +standard-geometric-sequence-ℚ = + standard-geometric-sequence-Commutative-Ring commutative-ring-ℚ + +seq-standard-geometric-sequence-ℚ : ℚ → ℚ → sequence ℚ +seq-standard-geometric-sequence-ℚ = + seq-standard-geometric-sequence-Commutative-Ring commutative-ring-ℚ +``` + +## Properties + +### The nth term of a geometric sequence with initial term `a` and common ratio `r` is `a * rⁿ` + +```agda +module _ + (a r : ℚ) + where + + compute-standard-geometric-sequence-ℚ : + (n : ℕ) → seq-standard-geometric-sequence-ℚ a r n = a *ℚ power-ℚ n r + compute-standard-geometric-sequence-ℚ n = + inv + ( htpy-mul-pow-standard-geometric-sequence-Commutative-Ring + ( commutative-ring-ℚ) + ( a) + ( r) + ( n)) +``` + +### If `r ≠ 1`, the sum of the first `n` elements of the standard geometric sequence `n ↦ arⁿ` is `a(1-rⁿ)/(1-r)` + +```agda +sum-standard-geometric-fin-sequence-ℚ : ℚ → ℚ → ℕ → ℚ +sum-standard-geometric-fin-sequence-ℚ = + sum-standard-geometric-fin-sequence-Commutative-Ring commutative-ring-ℚ + +module _ + (a r : ℚ) (r≠1 : r ≠ one-ℚ) + where + + abstract + compute-sum-standard-geometric-fin-sequence-ℚ : + (n : ℕ) → + sum-standard-geometric-fin-sequence-ℚ a r n = + ( a *ℚ + ( (one-ℚ -ℚ power-ℚ n r) *ℚ + rational-inv-ℚˣ (invertible-diff-neq-ℚ r one-ℚ r≠1))) + compute-sum-standard-geometric-fin-sequence-ℚ 0 = + inv + ( equational-reasoning + a *ℚ ((one-ℚ -ℚ one-ℚ) *ℚ _) + = a *ℚ (zero-ℚ *ℚ _) + by + ap-mul-ℚ + ( refl) + ( ap-mul-ℚ (right-inverse-law-add-ℚ one-ℚ) refl) + = a *ℚ zero-ℚ + by ap-mul-ℚ refl (left-zero-law-mul-ℚ _) + = zero-ℚ + by right-zero-law-mul-ℚ a) + compute-sum-standard-geometric-fin-sequence-ℚ (succ-ℕ n) = + let + 1/⟨1-r⟩ = rational-inv-ℚˣ (invertible-diff-neq-ℚ r one-ℚ r≠1) + in + equational-reasoning + sum-standard-geometric-fin-sequence-ℚ a r (succ-ℕ n) + = + sum-standard-geometric-fin-sequence-ℚ a r n +ℚ + seq-standard-geometric-sequence-ℚ a r n + by + cons-sum-fin-sequence-type-Commutative-Ring + ( commutative-ring-ℚ) + ( n) + ( _) + ( refl) + = + ( a *ℚ + ( (one-ℚ -ℚ power-ℚ n r) *ℚ 1/⟨1-r⟩)) +ℚ + ( a *ℚ power-ℚ n r) + by + ap-add-ℚ + ( compute-sum-standard-geometric-fin-sequence-ℚ n) + ( compute-standard-geometric-sequence-ℚ a r n) + = + a *ℚ + (((one-ℚ -ℚ power-ℚ n r) *ℚ 1/⟨1-r⟩) +ℚ power-ℚ n r) + by inv (left-distributive-mul-add-ℚ a _ _) + = + a *ℚ + ( (((one-ℚ -ℚ power-ℚ n r) *ℚ 1/⟨1-r⟩) +ℚ + (power-ℚ n r *ℚ (one-ℚ -ℚ r)) *ℚ 1/⟨1-r⟩)) + by + ap-mul-ℚ + ( refl) + ( ap-add-ℚ + ( refl) + ( inv + ( cancel-right-mul-div-ℚˣ _ + ( invertible-diff-neq-ℚ r one-ℚ r≠1)))) + = + a *ℚ + ( ( (one-ℚ -ℚ power-ℚ n r) +ℚ (power-ℚ n r *ℚ (one-ℚ -ℚ r))) *ℚ + 1/⟨1-r⟩) + by + ap-mul-ℚ + ( refl) + ( inv (right-distributive-mul-add-ℚ _ _ 1/⟨1-r⟩)) + = + a *ℚ + ( ( one-ℚ -ℚ power-ℚ n r +ℚ + ((power-ℚ n r *ℚ one-ℚ) -ℚ (power-ℚ n r *ℚ r))) *ℚ + 1/⟨1-r⟩) + by + ap-mul-ℚ + ( refl) + ( ap-mul-ℚ + ( ap-add-ℚ refl (left-distributive-mul-diff-ℚ _ _ _)) + ( refl)) + = + a *ℚ + ( ( one-ℚ -ℚ power-ℚ n r +ℚ + ((power-ℚ n r -ℚ power-ℚ (succ-ℕ n) r))) *ℚ + 1/⟨1-r⟩) + by + ap-mul-ℚ + ( refl) + ( ap-mul-ℚ + ( ap-add-ℚ + ( refl) + ( ap-diff-ℚ + ( right-unit-law-mul-ℚ _) + ( inv (power-succ-ℚ n r)))) + ( refl)) + = a *ℚ ((one-ℚ -ℚ power-ℚ (succ-ℕ n) r) *ℚ 1/⟨1-r⟩) + by + ap-mul-ℚ + ( refl) + ( ap-mul-ℚ + ( mul-right-div-Group group-add-ℚ _ _ _) + ( refl)) +``` + +## External links + +- [Geometric progressions](https://en.wikipedia.org/wiki/Geometric_progression) + at Wikipedia diff --git a/src/elementary-number-theory/multiplicative-group-of-rational-numbers.lagda.md b/src/elementary-number-theory/multiplicative-group-of-rational-numbers.lagda.md index 5d298f8985..1345443d5b 100644 --- a/src/elementary-number-theory/multiplicative-group-of-rational-numbers.lagda.md +++ b/src/elementary-number-theory/multiplicative-group-of-rational-numbers.lagda.md @@ -9,6 +9,8 @@ module elementary-number-theory.multiplicative-group-of-rational-numbers where
Imports ```agda +open import elementary-number-theory.additive-group-of-rational-numbers +open import elementary-number-theory.difference-rational-numbers open import elementary-number-theory.multiplication-positive-rational-numbers open import elementary-number-theory.multiplication-rational-numbers open import elementary-number-theory.multiplicative-monoid-of-rational-numbers @@ -26,6 +28,7 @@ open import foundation.dependent-pair-types open import foundation.empty-types open import foundation.function-types open import foundation.identity-types +open import foundation.negated-equality open import foundation.subtypes open import foundation.transport-along-identifications open import foundation.universe-levels @@ -86,6 +89,9 @@ _*ℚˣ_ = mul-ℚˣ inv-ℚˣ : ℚˣ → ℚˣ inv-ℚˣ = inv-group-of-units-Ring ring-ℚ + +rational-inv-ℚˣ : ℚˣ → ℚ +rational-inv-ℚˣ q = rational-ℚˣ (inv-ℚˣ q) ``` ### Inverse laws in the multiplicative group of rational numbers @@ -169,3 +175,35 @@ invertible-ℚ⁺ = invertible-nonzero-ℚ ∘ nonzero-ℚ⁺ invertible-ℚ⁻ : ℚ⁻ → ℚˣ invertible-ℚ⁻ = invertible-nonzero-ℚ ∘ nonzero-ℚ⁻ ``` + +### If `a ≠ b`, `b - a` is invertible + +```agda +abstract + is-invertible-diff-neq-ℚ : + (a b : ℚ) → a ≠ b → is-invertible-element-Ring ring-ℚ (b -ℚ a) + is-invertible-diff-neq-ℚ a b a≠b = + is-invertible-element-ring-is-nonzero-ℚ + ( b -ℚ a) + ( λ b-a=0 → a≠b (inv (eq-is-unit-right-div-Group group-add-ℚ b-a=0))) + +invertible-diff-neq-ℚ : (a b : ℚ) → a ≠ b → ℚˣ +invertible-diff-neq-ℚ a b a≠b = (b -ℚ a , is-invertible-diff-neq-ℚ a b a≠b) +``` + +### Cancellation laws + +```agda +abstract + cancel-right-mul-div-ℚˣ : + (p : ℚ) (q : ℚˣ) → (p *ℚ rational-ℚˣ q) *ℚ rational-inv-ℚˣ q = p + cancel-right-mul-div-ℚˣ p q = + equational-reasoning + p *ℚ rational-ℚˣ q *ℚ rational-inv-ℚˣ q + = p *ℚ (rational-ℚˣ q *ℚ rational-inv-ℚˣ q) + by associative-mul-ℚ _ _ _ + = p *ℚ rational-ℚˣ one-ℚˣ + by ap-mul-ℚ refl (ap rational-ℚˣ (right-inverse-law-mul-ℚˣ q)) + = p + by right-unit-law-mul-ℚ p +``` diff --git a/src/group-theory/arithmetic-sequences-semigroups.lagda.md b/src/group-theory/arithmetic-sequences-semigroups.lagda.md index f58aa8571c..0238c5bd31 100644 --- a/src/group-theory/arithmetic-sequences-semigroups.lagda.md +++ b/src/group-theory/arithmetic-sequences-semigroups.lagda.md @@ -13,6 +13,7 @@ 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.homotopies open import foundation.identity-types open import foundation.propositions @@ -188,6 +189,32 @@ module _ ( refl) ``` +### The tail of a standard arithmetic sequence is another standard arithmetic sequence + +```agda +module _ + {l : Level} (G : Semigroup l) (a d : type-Semigroup G) + where + + abstract + htpy-tail-standard-arithmetric-sequence-Semigroup : + tail-sequence + ( seq-standard-arithmetic-sequence-Semigroup G a d) ~ + seq-standard-arithmetic-sequence-Semigroup G (mul-Semigroup G a d) d + htpy-tail-standard-arithmetric-sequence-Semigroup 0 = refl + htpy-tail-standard-arithmetric-sequence-Semigroup (succ-ℕ n) = + ap-mul-Semigroup G + ( htpy-tail-standard-arithmetric-sequence-Semigroup n) + ( refl) + + eq-tail-standard-arithmetric-sequence-Semigroup : + tail-sequence + ( seq-standard-arithmetic-sequence-Semigroup G a d) = + seq-standard-arithmetic-sequence-Semigroup G (mul-Semigroup G a d) d + eq-tail-standard-arithmetric-sequence-Semigroup = + eq-htpy htpy-tail-standard-arithmetric-sequence-Semigroup +``` + ## External links - [Arithmetic progressions](https://en.wikipedia.org/wiki/Arithmetic_progression) diff --git a/src/lists/sequences.lagda.md b/src/lists/sequences.lagda.md index 41905ca59a..242bc05b7f 100644 --- a/src/lists/sequences.lagda.md +++ b/src/lists/sequences.lagda.md @@ -7,6 +7,8 @@ module lists.sequences where
Imports ```agda +open import elementary-number-theory.natural-numbers + open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.universe-levels @@ -38,6 +40,13 @@ sequence : {l : Level} → UU l → UU l sequence A = dependent-sequence (λ _ → A) ``` +### The tail of a sequence + +```agda +tail-sequence : {l : Level} {A : UU l} → sequence A → sequence A +tail-sequence u n = u (succ-ℕ n) +``` + ### Functorial action on maps of sequences ```agda diff --git a/src/ring-theory.lagda.md b/src/ring-theory.lagda.md index 945dff35bf..4c54a3e822 100644 --- a/src/ring-theory.lagda.md +++ b/src/ring-theory.lagda.md @@ -32,6 +32,7 @@ open import ring-theory.full-ideals-rings public open import ring-theory.function-rings public open import ring-theory.function-semirings public open import ring-theory.generating-elements-rings public +open import ring-theory.geometric-sequences-rings public open import ring-theory.geometric-sequences-semirings public open import ring-theory.groups-of-units-rings public open import ring-theory.homomorphisms-cyclic-rings public diff --git a/src/ring-theory/geometric-sequences-rings.lagda.md b/src/ring-theory/geometric-sequences-rings.lagda.md new file mode 100644 index 0000000000..2d415a0512 --- /dev/null +++ b/src/ring-theory/geometric-sequences-rings.lagda.md @@ -0,0 +1,215 @@ +# Geometric sequences in rings + +```agda +module ring-theory.geometric-sequences-rings where +``` + +
Imports + +```agda +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.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.sequences + +open import ring-theory.geometric-sequences-semirings +open import ring-theory.powers-of-elements-rings +open import ring-theory.rings +``` + +
+ +## Ideas + +A +{{#concept "geometric sequence" Disambiguation="in a ring" Agda=geometric-sequence-Ring}} +in a [ring](ring-theory.rings.md) is a +[geometric sequence](ring-theory.geometric-sequences-semirings.md) in the +underlying [semiring](ring-theory.semirings.md). + +These are sequences of the form `n ↦ a * rⁿ`, for elements `a`, `r` in the ring. + +## Definitions + +### Geometric sequences in rings + +```agda +module _ + {l : Level} (R : Ring l) + where + + geometric-sequence-Ring : UU l + geometric-sequence-Ring = + geometric-sequence-Semiring (semiring-Ring R) + +module _ + {l : Level} (R : Ring l) + (u : geometric-sequence-Ring R) + where + + seq-geometric-sequence-Ring : ℕ → type-Ring R + seq-geometric-sequence-Ring = + seq-geometric-sequence-Semiring (semiring-Ring R) u + + common-ratio-geometric-sequence-Ring : type-Ring R + common-ratio-geometric-sequence-Ring = + common-ratio-geometric-sequence-Semiring (semiring-Ring R) u + + is-common-ratio-geometric-sequence-Ring : + ( n : ℕ) → + ( seq-geometric-sequence-Ring (succ-ℕ n)) = + ( mul-Ring + ( R) + ( seq-geometric-sequence-Ring n) + ( common-ratio-geometric-sequence-Ring)) + is-common-ratio-geometric-sequence-Ring = + is-common-difference-arithmetic-sequence-Semigroup + ( multiplicative-semigroup-Ring R) + ( u) + + initial-term-geometric-sequence-Ring : type-Ring R + initial-term-geometric-sequence-Ring = + initial-term-arithmetic-sequence-Semigroup + ( multiplicative-semigroup-Ring R) + ( u) +``` + +### The standard geometric sequences in a ring + +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 : Ring l) (a r : type-Ring R) + where + + standard-geometric-sequence-Ring : geometric-sequence-Ring R + standard-geometric-sequence-Ring = + standard-arithmetic-sequence-Semigroup + ( multiplicative-semigroup-Ring R) + ( a) + ( r) + + seq-standard-geometric-sequence-Ring : ℕ → type-Ring R + seq-standard-geometric-sequence-Ring = + seq-geometric-sequence-Ring R + standard-geometric-sequence-Ring +``` + +### The geometric sequences `n ↦ a * rⁿ` + +```agda +module _ + {l : Level} (R : Ring l) (a r : type-Ring R) + where + + mul-pow-nat-Ring : sequence (type-Ring R) + mul-pow-nat-Ring = mul-pow-nat-Semiring (semiring-Ring R) a r + + geometric-mul-pow-nat-Ring : geometric-sequence-Ring R + geometric-mul-pow-nat-Ring = + geometric-mul-pow-nat-Semiring (semiring-Ring R) a r + + initial-term-mul-pow-nat-Ring : type-Ring R + initial-term-mul-pow-nat-Ring = + initial-term-mul-pow-nat-Semiring (semiring-Ring R) a r + + eq-initial-term-mul-pow-nat-Ring : + initial-term-mul-pow-nat-Ring = a + eq-initial-term-mul-pow-nat-Ring = + eq-initial-term-mul-pow-nat-Semiring (semiring-Ring R) a r +``` + +## Properties + +### Any geometric sequence is homotopic to a standard geometric sequence + +```agda +module _ + {l : Level} (R : Ring l) + (u : geometric-sequence-Ring R) + where + + htpy-seq-standard-geometric-sequence-Ring : + ( seq-geometric-sequence-Ring R + ( standard-geometric-sequence-Ring R + ( initial-term-geometric-sequence-Ring R u) + ( common-ratio-geometric-sequence-Ring R u))) ~ + ( seq-geometric-sequence-Ring R u) + htpy-seq-standard-geometric-sequence-Ring = + htpy-seq-standard-arithmetic-sequence-Semigroup + ( multiplicative-semigroup-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 : Ring l) (a r : type-Ring R) + where + + htpy-mul-pow-standard-geometric-sequence-Ring : + mul-pow-nat-Ring R a r ~ seq-standard-geometric-sequence-Ring R a r + htpy-mul-pow-standard-geometric-sequence-Ring = + htpy-mul-pow-standard-geometric-sequence-Semiring (semiring-Ring R) a r +``` + +```agda +module _ + {l : Level} (R : Ring l) (u : geometric-sequence-Ring R) + where + + htpy-mul-pow-geometric-sequence-Ring : + mul-pow-nat-Ring + ( R) + ( initial-term-geometric-sequence-Ring R u) + ( common-ratio-geometric-sequence-Ring R u) ~ + seq-geometric-sequence-Ring R u + htpy-mul-pow-geometric-sequence-Ring = + htpy-mul-pow-geometric-sequence-Semiring (semiring-Ring R) u +``` + +### Constant sequences are geometric with common ratio one + +```agda +module _ + {l : Level} (R : Ring l) (a : type-Ring R) + where + + one-is-common-ratio-const-sequence-Ring : + is-common-difference-sequence-Semigroup + ( multiplicative-semigroup-Ring R) + ( λ _ → a) + ( one-Ring R) + one-is-common-ratio-const-sequence-Ring n = + inv (right-unit-law-mul-Ring R a) + + geometric-const-sequence-Ring : geometric-sequence-Ring R + geometric-const-sequence-Ring = + geometric-const-sequence-Semiring (semiring-Ring R) a +``` + +## See also + +- [Geometric sequences in a semiring](ring-theory.geometric-sequences-semirings.md) + +## External links + +- [Geometric progressions](https://en.wikipedia.org/wiki/Geometric_progression) + at Wikipedia diff --git a/src/ring-theory/geometric-sequences-semirings.lagda.md b/src/ring-theory/geometric-sequences-semirings.lagda.md index 2b0107a2db..1e560ceabd 100644 --- a/src/ring-theory/geometric-sequences-semirings.lagda.md +++ b/src/ring-theory/geometric-sequences-semirings.lagda.md @@ -13,6 +13,7 @@ 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.homotopies open import foundation.identity-types open import foundation.propositions @@ -54,6 +55,11 @@ module _ arithmetic-sequence-Semigroup ( multiplicative-semigroup-Semiring R) + is-geometric-sequence-Semiring : sequence (type-Semiring R) → UU l + is-geometric-sequence-Semiring = + is-arithmetic-sequence-Semigroup + ( multiplicative-semigroup-Semiring R) + module _ {l : Level} (R : Semiring l) (u : geometric-sequence-Semiring R) @@ -66,8 +72,8 @@ module _ ( u) is-geometric-seq-geometric-sequence-Semiring : - is-arithmetic-sequence-Semigroup - ( multiplicative-semigroup-Semiring R) + is-geometric-sequence-Semiring + ( R) ( seq-geometric-sequence-Semiring) is-geometric-seq-geometric-sequence-Semiring = is-arithmetic-seq-arithmetic-sequence-Semigroup @@ -205,7 +211,7 @@ module _ ( u) ``` -### The nth term of an geometric sequence with initial term `a` and common ratio `r` is `a * rⁿ` +### The nth term of a geometric sequence with initial term `a` and common ratio `r` is `a * rⁿ` ```agda module _ @@ -267,6 +273,32 @@ module _ ( one-Semiring R , one-is-common-ratio-const-sequence-Semiring) ``` +### The tail of a standard geometric sequence is another standard geometric sequence + +```agda +module _ + {l : Level} (R : Semiring l) (a r : type-Semiring R) + where + + abstract + htpy-tail-standard-geometric-sequence-Semiring : + tail-sequence + ( seq-standard-geometric-sequence-Semiring R a r) ~ + seq-standard-geometric-sequence-Semiring R (mul-Semiring R a r) r + htpy-tail-standard-geometric-sequence-Semiring = + htpy-tail-standard-arithmetric-sequence-Semigroup + ( multiplicative-semigroup-Semiring R) + ( a) + ( r) + + eq-tail-standard-geometric-sequence-Semiring : + tail-sequence + ( seq-standard-geometric-sequence-Semiring R a r) = + seq-standard-geometric-sequence-Semiring R (mul-Semiring R a r) r + eq-tail-standard-geometric-sequence-Semiring = + eq-htpy htpy-tail-standard-geometric-sequence-Semiring +``` + ## External links - [Geometric progressions](https://en.wikipedia.org/wiki/Geometric_progression)