diff --git a/src/analysis/convergent-series-metric-abelian-groups.lagda.md b/src/analysis/convergent-series-metric-abelian-groups.lagda.md
index 6e5e9cfe3f..d78cf2b8bd 100644
--- a/src/analysis/convergent-series-metric-abelian-groups.lagda.md
+++ b/src/analysis/convergent-series-metric-abelian-groups.lagda.md
@@ -43,7 +43,7 @@ module _
is-sum-prop-series-Metric-Ab =
is-limit-prop-sequence-Metric-Space
( metric-space-Metric-Ab G)
- ( partial-sum-series-Metric-Ab G σ)
+ ( partial-sum-series-Metric-Ab σ)
is-sum-series-Metric-Ab : type-Metric-Ab G → UU l2
is-sum-series-Metric-Ab s = type-Prop (is-sum-prop-series-Metric-Ab s)
@@ -52,7 +52,7 @@ module _
is-convergent-prop-series-Metric-Ab =
subtype-convergent-sequence-Metric-Space
( metric-space-Metric-Ab G)
- ( partial-sum-series-Metric-Ab G σ)
+ ( partial-sum-series-Metric-Ab σ)
is-convergent-series-Metric-Ab : UU (l1 ⊔ l2)
is-convergent-series-Metric-Ab =
@@ -76,7 +76,7 @@ module _
partial-sum-convergent-series-Metric-Ab : sequence (type-Metric-Ab G)
partial-sum-convergent-series-Metric-Ab =
- partial-sum-series-Metric-Ab G series-convergent-series-Metric-Ab
+ partial-sum-series-Metric-Ab series-convergent-series-Metric-Ab
```
## The partial sums of a convergent series have a limit, the sum of the series
diff --git a/src/analysis/series-metric-abelian-groups.lagda.md b/src/analysis/series-metric-abelian-groups.lagda.md
index 1bb3d80a5e..b450b78d25 100644
--- a/src/analysis/series-metric-abelian-groups.lagda.md
+++ b/src/analysis/series-metric-abelian-groups.lagda.md
@@ -83,7 +83,7 @@ module _
```agda
module _
- {l1 l2 : Level} (G : Metric-Ab l1 l2)
+ {l1 l2 : Level} {G : Metric-Ab l1 l2}
where
partial-sum-series-Metric-Ab : series-Metric-Ab G → ℕ → type-Metric-Ab G
@@ -95,14 +95,14 @@ module _
```agda
module _
- {l1 l2 : Level} (G : Metric-Ab l1 l2)
+ {l1 l2 : Level} {G : Metric-Ab l1 l2}
where
eq-term-diff-partial-sum-series-Metric-Ab :
(f : series-Metric-Ab G) (n : ℕ) →
add-Metric-Ab G
- ( partial-sum-series-Metric-Ab G f (succ-ℕ n))
- ( neg-Metric-Ab G (partial-sum-series-Metric-Ab G f n)) =
+ ( partial-sum-series-Metric-Ab f (succ-ℕ n))
+ ( neg-Metric-Ab G (partial-sum-series-Metric-Ab f n)) =
term-series-Metric-Ab f n
eq-term-diff-partial-sum-series-Metric-Ab (series-terms-Metric-Ab f) n =
ap-add-Metric-Ab G
@@ -118,21 +118,21 @@ module _
```agda
module _
- {l1 l2 : Level} (G : Metric-Ab l1 l2)
+ {l1 l2 : Level} {G : Metric-Ab l1 l2}
where
htpy-htpy-partial-sum-series-Metric-Ab :
{σ τ : series-Metric-Ab G} →
- (partial-sum-series-Metric-Ab G σ ~ partial-sum-series-Metric-Ab G τ) →
+ (partial-sum-series-Metric-Ab σ ~ partial-sum-series-Metric-Ab τ) →
term-series-Metric-Ab σ ~ term-series-Metric-Ab τ
htpy-htpy-partial-sum-series-Metric-Ab {σ} {τ} psσ~psτ n =
- inv (eq-term-diff-partial-sum-series-Metric-Ab G σ n) ∙
+ inv (eq-term-diff-partial-sum-series-Metric-Ab σ n) ∙
ap-right-subtraction-Ab (ab-Metric-Ab G) (psσ~psτ (succ-ℕ n)) (psσ~psτ n) ∙
- eq-term-diff-partial-sum-series-Metric-Ab G τ n
+ eq-term-diff-partial-sum-series-Metric-Ab τ n
eq-htpy-partial-sum-series-Metric-Ab :
{σ τ : series-Metric-Ab G} →
- (partial-sum-series-Metric-Ab G σ ~ partial-sum-series-Metric-Ab G τ) →
+ (partial-sum-series-Metric-Ab σ ~ partial-sum-series-Metric-Ab τ) →
σ = τ
eq-htpy-partial-sum-series-Metric-Ab psσ~psτ =
eq-htpy-term-series-Metric-Ab G
@@ -155,23 +155,22 @@ module _
```agda
module _
- {l1 l2 : Level} (G : Metric-Ab l1 l2)
+ {l1 l2 : Level} {G : Metric-Ab l1 l2}
where
abstract
partial-sum-drop-series-Metric-Ab :
- (n : ℕ) → (σ : series-Metric-Ab G) → (i : ℕ) →
- partial-sum-series-Metric-Ab G (drop-series-Metric-Ab n σ) i =
+ (n : ℕ) (σ : series-Metric-Ab G) (i : ℕ) →
+ partial-sum-series-Metric-Ab (drop-series-Metric-Ab n σ) i =
diff-Metric-Ab G
- ( partial-sum-series-Metric-Ab G σ (n +ℕ i))
- ( partial-sum-series-Metric-Ab G σ n)
- partial-sum-drop-series-Metric-Ab n (series-terms-Metric-Ab σ) i =
+ ( partial-sum-series-Metric-Ab σ (n +ℕ i))
+ ( partial-sum-series-Metric-Ab σ n)
+ partial-sum-drop-series-Metric-Ab n s@(series-terms-Metric-Ab σ) i =
inv
( equational-reasoning
diff-Metric-Ab G
- ( partial-sum-series-Metric-Ab G (series-terms-Metric-Ab σ)
- ( n +ℕ i))
- ( partial-sum-series-Metric-Ab G (series-terms-Metric-Ab σ) n)
+ ( partial-sum-series-Metric-Ab s (n +ℕ i))
+ ( partial-sum-series-Metric-Ab s n)
=
diff-Metric-Ab G
( add-Metric-Ab G
@@ -179,7 +178,7 @@ module _
( σ ∘ nat-Fin (n +ℕ i) ∘ inl-coproduct-Fin n i))
( sum-fin-sequence-type-Ab (ab-Metric-Ab G) i
( σ ∘ nat-Fin (n +ℕ i) ∘ inr-coproduct-Fin n i)))
- ( partial-sum-series-Metric-Ab G (series-terms-Metric-Ab σ) n)
+ ( partial-sum-series-Metric-Ab s n)
by
ap-diff-Metric-Ab G
( split-sum-fin-sequence-type-Ab
@@ -191,10 +190,11 @@ module _
=
diff-Metric-Ab G
( add-Metric-Ab G
- ( partial-sum-series-Metric-Ab G (series-terms-Metric-Ab σ) n)
- ( partial-sum-series-Metric-Ab G
- ( series-terms-Metric-Ab (σ ∘ add-ℕ n)) i))
- ( partial-sum-series-Metric-Ab G (series-terms-Metric-Ab σ) n)
+ ( partial-sum-series-Metric-Ab s n)
+ ( partial-sum-series-Metric-Ab
+ ( series-terms-Metric-Ab {G = G} (σ ∘ add-ℕ n))
+ ( i)))
+ ( partial-sum-series-Metric-Ab s n)
by
ap-diff-Metric-Ab G
( ap-add-Metric-Ab G
@@ -204,8 +204,8 @@ module _
( λ j → ap σ (nat-inr-coproduct-Fin n i j))))
( refl)
=
- partial-sum-series-Metric-Ab G
- ( series-terms-Metric-Ab (σ ∘ add-ℕ n))
+ partial-sum-series-Metric-Ab
+ ( series-terms-Metric-Ab {G = G} (σ ∘ add-ℕ n))
( i)
by is-identity-left-conjugation-Ab (ab-Metric-Ab G) _ _)
```
diff --git a/src/commutative-algebra/sums-of-finite-sequences-of-elements-commutative-rings.lagda.md b/src/commutative-algebra/sums-of-finite-sequences-of-elements-commutative-rings.lagda.md
index b1a0ac28aa..f5113246e1 100644
--- a/src/commutative-algebra/sums-of-finite-sequences-of-elements-commutative-rings.lagda.md
+++ b/src/commutative-algebra/sums-of-finite-sequences-of-elements-commutative-rings.lagda.md
@@ -8,6 +8,7 @@ module commutative-algebra.sums-of-finite-sequences-of-elements-commutative-ring
```agda
open import commutative-algebra.commutative-rings
+open import commutative-algebra.multiples-of-elements-commutative-rings
open import elementary-number-theory.addition-natural-numbers
open import elementary-number-theory.natural-numbers
@@ -244,6 +245,19 @@ module _
preserves-sum-permutation-fin-sequence-type-Ring (ring-Commutative-Ring A)
```
+### The sum of a constant finite sequence in a commutative ring is scalar multiplication by the length of the sequence
+
+```agda
+abstract
+ sum-constant-fin-sequence-type-Commutative-Ring :
+ {l : Level} (R : Commutative-Ring l) (n : ℕ) →
+ (x : type-Commutative-Ring R) →
+ sum-fin-sequence-type-Commutative-Ring R n (λ _ → x) =
+ multiple-Commutative-Ring R n x
+ sum-constant-fin-sequence-type-Commutative-Ring R =
+ sum-constant-fin-sequence-type-Ring (ring-Commutative-Ring R)
+```
+
## See also
- [Sums of finite families of elements in commutative rings](commutative-algebra.sums-of-finite-families-of-elements-commutative-rings.md)
diff --git a/src/commutative-algebra/sums-of-finite-sequences-of-elements-commutative-semirings.lagda.md b/src/commutative-algebra/sums-of-finite-sequences-of-elements-commutative-semirings.lagda.md
index 5c5bfabafc..4292c3ed0e 100644
--- a/src/commutative-algebra/sums-of-finite-sequences-of-elements-commutative-semirings.lagda.md
+++ b/src/commutative-algebra/sums-of-finite-sequences-of-elements-commutative-semirings.lagda.md
@@ -8,6 +8,7 @@ module commutative-algebra.sums-of-finite-sequences-of-elements-commutative-semi
```agda
open import commutative-algebra.commutative-semirings
+open import commutative-algebra.multiples-of-elements-commutative-semirings
open import elementary-number-theory.addition-natural-numbers
open import elementary-number-theory.natural-numbers
@@ -260,3 +261,16 @@ module _
preserves-sum-permutation-fin-sequence-type-Semiring
( semiring-Commutative-Semiring R)
```
+
+### The sum of a constant finite sequence in a commutative semiring is scalar multiplication by the length of the sequence
+
+```agda
+abstract
+ sum-constant-fin-sequence-type-Commutative-Semiring :
+ {l : Level} (R : Commutative-Semiring l) (n : ℕ) →
+ (x : type-Commutative-Semiring R) →
+ sum-fin-sequence-type-Commutative-Semiring R n (λ _ → x) =
+ multiple-Commutative-Semiring R n x
+ sum-constant-fin-sequence-type-Commutative-Semiring R =
+ sum-constant-fin-sequence-type-Semiring (semiring-Commutative-Semiring R)
+```
diff --git a/src/domain-theory/kleenes-fixed-point-theorem-posets.lagda.md b/src/domain-theory/kleenes-fixed-point-theorem-posets.lagda.md
index 8a3518c188..a3adf12194 100644
--- a/src/domain-theory/kleenes-fixed-point-theorem-posets.lagda.md
+++ b/src/domain-theory/kleenes-fixed-point-theorem-posets.lagda.md
@@ -26,6 +26,7 @@ open import foundation.universe-levels
open import order-theory.bottom-elements-posets
open import order-theory.chains-posets
+open import order-theory.increasing-sequences-posets
open import order-theory.inflattices
open import order-theory.inhabited-chains-posets
open import order-theory.least-upper-bounds-posets
diff --git a/src/domain-theory/omega-continuous-maps-omega-complete-posets.lagda.md b/src/domain-theory/omega-continuous-maps-omega-complete-posets.lagda.md
index 60ce16827f..cd6d068f2f 100644
--- a/src/domain-theory/omega-continuous-maps-omega-complete-posets.lagda.md
+++ b/src/domain-theory/omega-continuous-maps-omega-complete-posets.lagda.md
@@ -34,6 +34,7 @@ open import foundation.surjective-maps
open import foundation.torsorial-type-families
open import foundation.universe-levels
+open import order-theory.increasing-sequences-posets
open import order-theory.join-preserving-maps-posets
open import order-theory.least-upper-bounds-posets
open import order-theory.order-preserving-maps-posets
diff --git a/src/domain-theory/omega-continuous-maps-posets.lagda.md b/src/domain-theory/omega-continuous-maps-posets.lagda.md
index 3781ac426b..8d39239d6e 100644
--- a/src/domain-theory/omega-continuous-maps-posets.lagda.md
+++ b/src/domain-theory/omega-continuous-maps-posets.lagda.md
@@ -32,6 +32,7 @@ open import foundation.surjective-maps
open import foundation.torsorial-type-families
open import foundation.universe-levels
+open import order-theory.increasing-sequences-posets
open import order-theory.join-preserving-maps-posets
open import order-theory.least-upper-bounds-posets
open import order-theory.order-preserving-maps-posets
diff --git a/src/elementary-number-theory.lagda.md b/src/elementary-number-theory.lagda.md
index 9177a7585e..33be5ca7f1 100644
--- a/src/elementary-number-theory.lagda.md
+++ b/src/elementary-number-theory.lagda.md
@@ -92,6 +92,7 @@ open import elementary-number-theory.greatest-common-divisor-natural-numbers pub
open import elementary-number-theory.group-of-integers public
open import elementary-number-theory.half-integers public
open import elementary-number-theory.hardy-ramanujan-number public
+open import elementary-number-theory.harmonic-series-rational-numbers public
open import elementary-number-theory.inclusion-natural-numbers-conatural-numbers public
open import elementary-number-theory.inequalities-positive-and-negative-rational-numbers public
open import elementary-number-theory.inequality-arithmetic-geometric-means-integers public
@@ -200,6 +201,7 @@ open import elementary-number-theory.ring-extension-rational-numbers-of-rational
open import elementary-number-theory.ring-of-integers public
open import elementary-number-theory.ring-of-rational-numbers public
open import elementary-number-theory.semiring-of-natural-numbers public
+open import elementary-number-theory.series-rational-numbers public
open import elementary-number-theory.sieve-of-eratosthenes public
open import elementary-number-theory.square-free-natural-numbers public
open import elementary-number-theory.square-roots-positive-rational-numbers public
@@ -219,6 +221,7 @@ open import elementary-number-theory.strict-inequality-rational-numbers public
open import elementary-number-theory.strict-inequality-standard-finite-types public
open import elementary-number-theory.strictly-ordered-pairs-of-natural-numbers public
open import elementary-number-theory.strong-induction-natural-numbers public
+open import elementary-number-theory.sums-of-finite-sequences-of-rational-numbers public
open import elementary-number-theory.sums-of-natural-numbers public
open import elementary-number-theory.sylvesters-sequence public
open import elementary-number-theory.taxicab-numbers public
diff --git a/src/elementary-number-theory/decidable-total-order-natural-numbers.lagda.md b/src/elementary-number-theory/decidable-total-order-natural-numbers.lagda.md
index ba6c9d2db7..0317a9a1a3 100644
--- a/src/elementary-number-theory/decidable-total-order-natural-numbers.lagda.md
+++ b/src/elementary-number-theory/decidable-total-order-natural-numbers.lagda.md
@@ -48,50 +48,3 @@ pr1 ℕ-Decidable-Total-Order = ℕ-Poset
pr1 (pr2 ℕ-Decidable-Total-Order) = is-total-leq-ℕ
pr2 (pr2 ℕ-Decidable-Total-Order) = is-decidable-leq-ℕ
```
-
-## Properties
-
-### Maps out of the natural numbers that preserve order by induction
-
-```agda
-module _
- {l1 l2 : Level} (P : Preorder l1 l2)
- where
-
- preserves-order-ind-ℕ-Preorder :
- (f : ℕ → type-Preorder P) →
- ((n : ℕ) → leq-Preorder P (f n) (f (succ-ℕ n))) →
- preserves-order-Preorder ℕ-Preorder P f
- preserves-order-ind-ℕ-Preorder f H zero-ℕ zero-ℕ p =
- refl-leq-Preorder P (f zero-ℕ)
- preserves-order-ind-ℕ-Preorder f H zero-ℕ (succ-ℕ m) p =
- transitive-leq-Preorder P (f 0) (f m) (f (succ-ℕ m))
- ( H m)
- ( preserves-order-ind-ℕ-Preorder f H zero-ℕ m star)
- preserves-order-ind-ℕ-Preorder f H (succ-ℕ n) zero-ℕ ()
- preserves-order-ind-ℕ-Preorder f H (succ-ℕ n) (succ-ℕ m) =
- preserves-order-ind-ℕ-Preorder (f ∘ succ-ℕ) (H ∘ succ-ℕ) n m
-
- hom-ind-ℕ-Preorder :
- (f : ℕ → type-Preorder P) →
- ((n : ℕ) → leq-Preorder P (f n) (f (succ-ℕ n))) →
- hom-Preorder (ℕ-Preorder) P
- hom-ind-ℕ-Preorder f H = f , preserves-order-ind-ℕ-Preorder f H
-
-module _
- {l1 l2 : Level} (P : Poset l1 l2)
- where
-
- preserves-order-ind-ℕ-Poset :
- (f : ℕ → type-Poset P) →
- ((n : ℕ) → leq-Poset P (f n) (f (succ-ℕ n))) →
- preserves-order-Poset ℕ-Poset P f
- preserves-order-ind-ℕ-Poset =
- preserves-order-ind-ℕ-Preorder (preorder-Poset P)
-
- hom-ind-ℕ-Poset :
- (f : ℕ → type-Poset P) →
- ((n : ℕ) → leq-Poset P (f n) (f (succ-ℕ n))) →
- hom-Poset (ℕ-Poset) P
- hom-ind-ℕ-Poset = hom-ind-ℕ-Preorder (preorder-Poset P)
-```
diff --git a/src/elementary-number-theory/exponentiation-natural-numbers.lagda.md b/src/elementary-number-theory/exponentiation-natural-numbers.lagda.md
index 3e80e5f0dd..acd2ee98f3 100644
--- a/src/elementary-number-theory/exponentiation-natural-numbers.lagda.md
+++ b/src/elementary-number-theory/exponentiation-natural-numbers.lagda.md
@@ -12,10 +12,12 @@ open import commutative-algebra.powers-of-elements-commutative-semirings
open import elementary-number-theory.addition-natural-numbers
open import elementary-number-theory.multiplication-natural-numbers
open import elementary-number-theory.natural-numbers
+open import elementary-number-theory.nonzero-natural-numbers
open import elementary-number-theory.products-of-natural-numbers
open import elementary-number-theory.semiring-of-natural-numbers
open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
open import foundation.identity-types
```
@@ -103,6 +105,9 @@ abstract
is-nonzero-exp-ℕ m zero-ℕ p = is-nonzero-one-ℕ
is-nonzero-exp-ℕ m (succ-ℕ n) p =
is-nonzero-mul-ℕ (m ^ℕ n) m (is-nonzero-exp-ℕ m n p) p
+
+exp-ℕ⁺ : ℕ⁺ → ℕ → ℕ⁺
+exp-ℕ⁺ (n , n≠0) m = (exp-ℕ n m , is-nonzero-exp-ℕ n m n≠0)
```
### The exponent $m^n$ is equal to the $n$-fold product of $m$
diff --git a/src/elementary-number-theory/harmonic-series-rational-numbers.lagda.md b/src/elementary-number-theory/harmonic-series-rational-numbers.lagda.md
new file mode 100644
index 0000000000..87cb5fa105
--- /dev/null
+++ b/src/elementary-number-theory/harmonic-series-rational-numbers.lagda.md
@@ -0,0 +1,297 @@
+# The harmonic series of rational numbers
+
+```agda
+{-# OPTIONS --lossy-unification #-}
+
+module elementary-number-theory.harmonic-series-rational-numbers where
+```
+
+Imports
+
+```agda
+open import elementary-number-theory.addition-natural-numbers
+open import elementary-number-theory.addition-nonnegative-rational-numbers
+open import elementary-number-theory.addition-rational-numbers
+open import elementary-number-theory.additive-group-of-rational-numbers
+open import elementary-number-theory.archimedean-property-rational-numbers
+open import elementary-number-theory.exponentiation-natural-numbers
+open import elementary-number-theory.inequality-natural-numbers
+open import elementary-number-theory.inequality-rational-numbers
+open import elementary-number-theory.multiplication-natural-numbers
+open import elementary-number-theory.multiplication-positive-rational-numbers
+open import elementary-number-theory.multiplication-rational-numbers
+open import elementary-number-theory.multiplicative-group-of-positive-rational-numbers
+open import elementary-number-theory.natural-numbers
+open import elementary-number-theory.nonnegative-rational-numbers
+open import elementary-number-theory.nonzero-natural-numbers
+open import elementary-number-theory.positive-and-negative-rational-numbers
+open import elementary-number-theory.positive-rational-numbers
+open import elementary-number-theory.rational-numbers
+open import elementary-number-theory.series-rational-numbers
+open import elementary-number-theory.strict-inequality-natural-numbers
+open import elementary-number-theory.strict-inequality-rational-numbers
+open import elementary-number-theory.sums-of-finite-sequences-of-rational-numbers
+open import elementary-number-theory.unit-fractions-rational-numbers
+
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.existential-quantification
+open import foundation.function-extensionality
+open import foundation.function-types
+open import foundation.identity-types
+open import foundation.propositional-truncations
+open import foundation.propositions
+open import foundation.transport-along-identifications
+
+open import group-theory.abelian-groups
+
+open import order-theory.posets
+
+open import univalent-combinatorics.coproduct-types
+open import univalent-combinatorics.standard-finite-types
+```
+
+
+
+## Idea
+
+The
+{{#concept "harmonic series" WDID=Q464100 WD="harmonic series" Agda=harmonic-series-ℚ}}
+is the sum $$∑_{n=0}^{∞} \frac{1}{n}.$$
+
+## Definition
+
+```agda
+harmonic-series-ℚ : series-ℚ
+harmonic-series-ℚ = series-terms-ℚ reciprocal-rational-succ-ℕ
+```
+
+## Properties
+
+### For any `k`, the `2ᵏ`'th partial sum of the harmonic series is at least `1 + k/2`
+
+```agda
+abstract
+ lower-bound-sum-harmonic-series-power-of-two-ℚ :
+ (k : ℕ) →
+ leq-ℚ
+ ( one-ℚ +ℚ reciprocal-rational-succ-ℕ 1 *ℚ rational-ℕ k)
+ ( partial-sum-series-ℚ harmonic-series-ℚ (exp-ℕ 2 k))
+ lower-bound-sum-harmonic-series-power-of-two-ℚ 0 =
+ leq-eq-ℚ
+ ( inv
+ ( equational-reasoning
+ partial-sum-series-ℚ harmonic-series-ℚ (exp-ℕ 2 zero-ℕ)
+ = reciprocal-rational-succ-ℕ 0
+ by compute-sum-one-element-ℚ _
+ = one-ℚ
+ by ap rational-ℚ⁺ inv-one-ℚ⁺
+ = one-ℚ +ℚ zero-ℚ
+ by inv (right-unit-law-add-ℚ one-ℚ)
+ = one-ℚ +ℚ reciprocal-rational-succ-ℕ 1 *ℚ zero-ℚ
+ by ap-add-ℚ refl (inv (right-zero-law-mul-ℚ _))))
+ lower-bound-sum-harmonic-series-power-of-two-ℚ (succ-ℕ n) =
+ let
+ open inequality-reasoning-Poset ℚ-Poset
+ in
+ chain-of-inequalities
+ one-ℚ +ℚ reciprocal-rational-succ-ℕ 1 *ℚ rational-ℕ (succ-ℕ n)
+ ≤ one-ℚ +ℚ reciprocal-rational-succ-ℕ 1 *ℚ succ-ℚ (rational-ℕ n)
+ by leq-eq-ℚ (ap-add-ℚ refl (ap-mul-ℚ refl (inv (succ-rational-ℕ n))))
+ ≤ ( one-ℚ) +ℚ
+ ( reciprocal-rational-succ-ℕ 1 +ℚ
+ reciprocal-rational-succ-ℕ 1 *ℚ rational-ℕ n)
+ by leq-eq-ℚ (ap-add-ℚ refl (mul-right-succ-ℚ _ _))
+ ≤ ( reciprocal-rational-succ-ℕ 1) +ℚ
+ ( one-ℚ +ℚ reciprocal-rational-succ-ℕ 1 *ℚ rational-ℕ n)
+ by leq-eq-ℚ (left-swap-add-ℚ _ _ _)
+ ≤ ( reciprocal-rational-succ-ℕ 1) +ℚ
+ ( partial-sum-series-ℚ harmonic-series-ℚ (exp-ℕ 2 n))
+ by
+ preserves-leq-right-add-ℚ _ _ _
+ ( lower-bound-sum-harmonic-series-power-of-two-ℚ n)
+ ≤ ( ( rational-ℕ (exp-ℕ 2 n)) *ℚ
+ ( reciprocal-rational-succ-ℕ 1) *ℚ
+ ( reciprocal-rational-ℕ⁺ (exp-ℕ⁺ two-ℕ⁺ n))) +ℚ
+ ( partial-sum-series-ℚ harmonic-series-ℚ (exp-ℕ 2 n))
+ by
+ leq-eq-ℚ
+ ( ap-add-ℚ
+ ( inv
+ ( ap
+ ( rational-ℚ⁺)
+ ( is-identity-left-conjugation-Ab
+ ( abelian-group-mul-ℚ⁺)
+ ( positive-rational-ℕ⁺ (exp-ℕ⁺ two-ℕ⁺ n))
+ ( positive-reciprocal-rational-succ-ℕ 1))))
+ ( refl))
+ ≤ ( ( rational-ℕ (exp-ℕ 2 n)) *ℚ
+ ( ( reciprocal-rational-succ-ℕ 1) *ℚ
+ ( reciprocal-rational-ℕ⁺ (exp-ℕ⁺ two-ℕ⁺ n)))) +ℚ
+ ( partial-sum-series-ℚ harmonic-series-ℚ (exp-ℕ 2 n))
+ by leq-eq-ℚ (ap-add-ℚ (associative-mul-ℚ _ _ _) refl)
+ ≤ ( ( rational-ℕ (exp-ℕ 2 n)) *ℚ
+ ( ( reciprocal-rational-ℕ⁺ (exp-ℕ⁺ two-ℕ⁺ n)) *ℚ
+ ( reciprocal-rational-succ-ℕ 1))) +ℚ
+ ( partial-sum-series-ℚ harmonic-series-ℚ (exp-ℕ 2 n))
+ by leq-eq-ℚ (ap-add-ℚ (ap-mul-ℚ refl (commutative-mul-ℚ _ _)) refl)
+ ≤ ( ( rational-ℕ (exp-ℕ 2 n)) *ℚ
+ ( reciprocal-rational-ℕ⁺ (exp-ℕ⁺ two-ℕ⁺ (succ-ℕ n)))) +ℚ
+ ( partial-sum-series-ℚ harmonic-series-ℚ (exp-ℕ 2 n))
+ by
+ leq-eq-ℚ
+ ( ap-add-ℚ
+ ( ap-mul-ℚ
+ ( refl)
+ ( ( inv
+ ( distributive-reciprocal-mul-ℕ⁺
+ ( exp-ℕ⁺ two-ℕ⁺ n)
+ ( two-ℕ⁺))) ∙
+ ( ap
+ ( reciprocal-rational-ℕ⁺)
+ ( eq-nonzero-ℕ
+ { exp-ℕ⁺ two-ℕ⁺ n *ℕ⁺ two-ℕ⁺}
+ { exp-ℕ⁺ two-ℕ⁺ (succ-ℕ n)}
+ ( refl)))))
+ ( refl))
+ ≤ ( sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n)
+ ( λ _ → reciprocal-rational-ℕ⁺ (exp-ℕ⁺ two-ℕ⁺ (succ-ℕ n)))) +ℚ
+ ( partial-sum-series-ℚ harmonic-series-ℚ (exp-ℕ 2 n))
+ by leq-eq-ℚ (ap-add-ℚ (inv (sum-constant-fin-sequence-ℚ _ _)) refl)
+ ≤ ( sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n)
+ ( λ k →
+ reciprocal-rational-succ-ℕ
+ ( nat-Fin
+ ( exp-ℕ 2 n +ℕ exp-ℕ 2 n)
+ ( inr-coproduct-Fin (exp-ℕ 2 n) (exp-ℕ 2 n) k)))) +ℚ
+ ( sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n)
+ ( λ k → reciprocal-rational-succ-ℕ (nat-Fin (exp-ℕ 2 n) k)))
+ by
+ preserves-leq-left-add-ℚ _ _ _
+ ( preserves-leq-sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n)
+ ( _)
+ ( _)
+ ( λ k →
+ inv-leq-ℚ⁺ _ _
+ ( preserves-leq-rational-ℕ
+ ( leq-succ-le-ℕ
+ ( nat-Fin (exp-ℕ 2 n +ℕ exp-ℕ 2 n) _)
+ ( exp-ℕ 2 (succ-ℕ n))
+ ( inv-tr
+ ( le-ℕ _)
+ ( right-two-law-mul-ℕ _)
+ ( strict-upper-bound-nat-Fin _ _))))))
+ ≤ ( sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n)
+ ( λ k →
+ reciprocal-rational-succ-ℕ
+ ( nat-Fin
+ ( exp-ℕ 2 n +ℕ exp-ℕ 2 n)
+ ( inr-coproduct-Fin (exp-ℕ 2 n) (exp-ℕ 2 n) k)))) +ℚ
+ ( sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n)
+ ( λ k →
+ reciprocal-rational-succ-ℕ
+ ( nat-Fin
+ ( exp-ℕ 2 n +ℕ exp-ℕ 2 n)
+ ( inl-coproduct-Fin (exp-ℕ 2 n) (exp-ℕ 2 n) k))))
+ by
+ leq-eq-ℚ
+ ( ap-add-ℚ
+ ( refl)
+ ( ap
+ ( sum-fin-sequence-ℚ (exp-ℕ 2 n))
+ ( eq-htpy
+ ( λ k →
+ ap
+ ( reciprocal-rational-succ-ℕ)
+ ( inv (nat-inl-coproduct-Fin _ _ k))))))
+ ≤ ( sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n)
+ ( λ k →
+ reciprocal-rational-succ-ℕ
+ ( nat-Fin
+ ( exp-ℕ 2 n +ℕ exp-ℕ 2 n)
+ ( inl-coproduct-Fin (exp-ℕ 2 n) (exp-ℕ 2 n) k)))) +ℚ
+ ( sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n)
+ ( λ k →
+ reciprocal-rational-succ-ℕ
+ ( nat-Fin
+ ( exp-ℕ 2 n +ℕ exp-ℕ 2 n)
+ ( inr-coproduct-Fin (exp-ℕ 2 n) (exp-ℕ 2 n) k))))
+ by leq-eq-ℚ (commutative-add-ℚ _ _)
+ ≤ sum-fin-sequence-ℚ
+ ( exp-ℕ 2 n +ℕ exp-ℕ 2 n)
+ ( λ k →
+ reciprocal-rational-succ-ℕ (nat-Fin (exp-ℕ 2 n +ℕ exp-ℕ 2 n) k))
+ by leq-eq-ℚ (inv (split-sum-fin-sequence-ℚ _ _ _))
+ ≤ sum-fin-sequence-ℚ
+ ( exp-ℕ 2 (succ-ℕ n))
+ ( reciprocal-rational-succ-ℕ ∘ nat-Fin (exp-ℕ 2 (succ-ℕ n)))
+ by
+ leq-eq-ℚ
+ ( ap
+ ( λ k →
+ sum-fin-sequence-ℚ k (reciprocal-rational-succ-ℕ ∘ nat-Fin k))
+ ( inv (right-two-law-mul-ℕ _)))
+```
+
+### The harmonic series diverges
+
+The divergence of the harmonic series is the
+[34th](literature.100-theorems.md#34) theorem on
+[Freek Wiedijk](http://www.cs.ru.nl/F.Wiedijk/)'s list of
+[100 theorems](literature.100-theorems.md) {{#cite 100theorems}}.
+
+```agda
+abstract
+ grows-without-bound-harmonic-series-ℚ :
+ grows-without-bound-series-ℚ harmonic-series-ℚ
+ grows-without-bound-harmonic-series-ℚ q =
+ let
+ open
+ do-syntax-trunc-Prop
+ ( ∃ ℕ (partial-sum-stays-above-prop-series-ℚ harmonic-series-ℚ q))
+ open inequality-reasoning-Poset ℚ-Poset
+ in do
+ (n , 2q
@@ -452,17 +455,33 @@ abstract
by ap-add-ℚ (right-unit-law-mul-ℚ p) refl
```
+### Multiplication by a natural number is repeated addition
+
+```agda
+abstract
+ left-mul-rational-nat-ℚ :
+ (n : ℕ) (q : ℚ) → rational-ℕ n *ℚ q = multiple-Ab abelian-group-add-ℚ n q
+ left-mul-rational-nat-ℚ 0 q = left-zero-law-mul-ℚ q
+ left-mul-rational-nat-ℚ 1 q = left-unit-law-mul-ℚ q
+ left-mul-rational-nat-ℚ (succ-ℕ n@(succ-ℕ _)) q =
+ equational-reasoning
+ rational-ℕ (succ-ℕ n) *ℚ q
+ = succ-ℚ (rational-ℕ n) *ℚ q
+ by ap-mul-ℚ (inv (succ-rational-ℕ n)) refl
+ = q +ℚ rational-ℕ n *ℚ q by
+ mul-left-succ-ℚ _ _
+ = q +ℚ multiple-Ab abelian-group-add-ℚ n q
+ by ap-add-ℚ refl (left-mul-rational-nat-ℚ n q)
+ = multiple-Ab abelian-group-add-ℚ (succ-ℕ n) q
+ by inv (multiple-succ-Ab' abelian-group-add-ℚ n q)
+```
+
### `2q = q + q`
```agda
abstract
mul-two-ℚ : (q : ℚ) → rational-ℕ 2 *ℚ q = q +ℚ q
- mul-two-ℚ q =
- equational-reasoning
- rational-ℤ (one-ℤ +ℤ one-ℤ) *ℚ q
- = (one-ℚ +ℚ one-ℚ) *ℚ q by ap (_*ℚ q) (inv (add-rational-ℤ one-ℤ one-ℤ))
- = (one-ℚ *ℚ q) +ℚ (one-ℚ *ℚ q) by right-distributive-mul-add-ℚ _ _ _
- = q +ℚ q by ap-add-ℚ (left-unit-law-mul-ℚ q) (left-unit-law-mul-ℚ q)
+ mul-two-ℚ = left-mul-rational-nat-ℚ 2
```
### The product of a rational number and its denominator is its numerator
diff --git a/src/elementary-number-theory/nonzero-natural-numbers.lagda.md b/src/elementary-number-theory/nonzero-natural-numbers.lagda.md
index 18887cf415..ec1ccb6309 100644
--- a/src/elementary-number-theory/nonzero-natural-numbers.lagda.md
+++ b/src/elementary-number-theory/nonzero-natural-numbers.lagda.md
@@ -77,6 +77,14 @@ one-ℕ⁺ : ℕ⁺
one-ℕ⁺ = one-nonzero-ℕ
```
+### The nonzero natural number `2`
+
+```agda
+two-ℕ⁺ : ℕ⁺
+pr1 two-ℕ⁺ = 2
+pr2 two-ℕ⁺ ()
+```
+
### The successor function on the nonzero natural numbers
```agda
diff --git a/src/elementary-number-theory/series-rational-numbers.lagda.md b/src/elementary-number-theory/series-rational-numbers.lagda.md
new file mode 100644
index 0000000000..c1f6e8809c
--- /dev/null
+++ b/src/elementary-number-theory/series-rational-numbers.lagda.md
@@ -0,0 +1,102 @@
+# Series of rational numbers
+
+```agda
+{-# OPTIONS --lossy-unification #-}
+
+module elementary-number-theory.series-rational-numbers where
+```
+
+Imports
+
+```agda
+open import analysis.convergent-series-metric-abelian-groups
+open import analysis.series-metric-abelian-groups
+
+open import elementary-number-theory.addition-nonnegative-rational-numbers
+open import elementary-number-theory.inequality-natural-numbers
+open import elementary-number-theory.inequality-rational-numbers
+open import elementary-number-theory.metric-additive-group-of-rational-numbers
+open import elementary-number-theory.natural-numbers
+open import elementary-number-theory.nonnegative-rational-numbers
+open import elementary-number-theory.rational-numbers
+
+open import foundation.dependent-pair-types
+open import foundation.existential-quantification
+open import foundation.propositions
+open import foundation.universe-levels
+
+open import lists.sequences
+
+open import order-theory.increasing-sequences-posets
+open import order-theory.order-preserving-maps-posets
+```
+
+
+
+## Idea
+
+A {{#concept "series" Disambiguation="in ℚ" Agda=series-ℚ}} of
+[rational numbers](elementary-number-theory.rational-numbers.md) is a
+[series](analysis.series-metric-abelian-groups.md) in the
+[metric additive group of rational numbers](elementary-number-theory.metric-additive-group-of-rational-numbers.md)
+
+## Definition
+
+```agda
+series-ℚ : UU lzero
+series-ℚ = series-Metric-Ab metric-ab-add-ℚ
+
+series-terms-ℚ : sequence ℚ → series-ℚ
+series-terms-ℚ = series-terms-Metric-Ab
+
+partial-sum-series-ℚ : series-ℚ → ℕ → ℚ
+partial-sum-series-ℚ = partial-sum-series-Metric-Ab
+
+term-series-ℚ : series-ℚ → ℕ → ℚ
+term-series-ℚ = term-series-Metric-Ab
+```
+
+## Properties
+
+### The proposition that a series converges to a sum
+
+```agda
+is-sum-prop-series-ℚ : series-ℚ → ℚ → Prop lzero
+is-sum-prop-series-ℚ = is-sum-prop-series-Metric-Ab
+
+is-sum-series-ℚ : series-ℚ → ℚ → UU lzero
+is-sum-series-ℚ = is-sum-series-Metric-Ab
+```
+
+### The proposition that a series grows without bound
+
+```agda
+partial-sum-stays-above-prop-series-ℚ : series-ℚ → ℚ → ℕ → Prop lzero
+partial-sum-stays-above-prop-series-ℚ σ q n =
+ Π-Prop ℕ (λ k → leq-ℕ-Prop n k ⇒ leq-ℚ-Prop q (partial-sum-series-ℚ σ k))
+
+grows-without-bound-prop-series-ℚ : series-ℚ → Prop lzero
+grows-without-bound-prop-series-ℚ σ =
+ Π-Prop ℚ (λ q → ∃ ℕ (partial-sum-stays-above-prop-series-ℚ σ q))
+
+grows-without-bound-series-ℚ : series-ℚ → UU lzero
+grows-without-bound-series-ℚ σ =
+ type-Prop (grows-without-bound-prop-series-ℚ σ)
+```
+
+### If all elements of a series are nonnegative, its partial sums are increasing
+
+```agda
+abstract
+ is-increasing-partial-sum-is-nonnegative-term-series-ℚ :
+ (σ : series-ℚ) → ((n : ℕ) → is-nonnegative-ℚ (term-series-ℚ σ n)) →
+ is-increasing-sequence-Poset ℚ-Poset (partial-sum-series-ℚ σ)
+ is-increasing-partial-sum-is-nonnegative-term-series-ℚ σ H =
+ is-increasing-leq-succ-sequence-Poset
+ ( ℚ-Poset)
+ ( partial-sum-series-ℚ σ)
+ ( λ n →
+ is-inflationary-map-right-add-rational-ℚ⁰⁺
+ ( term-series-ℚ σ n , H n)
+ ( partial-sum-series-ℚ σ n))
+```
diff --git a/src/elementary-number-theory/sums-of-finite-sequences-of-rational-numbers.lagda.md b/src/elementary-number-theory/sums-of-finite-sequences-of-rational-numbers.lagda.md
new file mode 100644
index 0000000000..374a1d8051
--- /dev/null
+++ b/src/elementary-number-theory/sums-of-finite-sequences-of-rational-numbers.lagda.md
@@ -0,0 +1,109 @@
+# Sums of finite sequences of rational numbers
+
+```agda
+module elementary-number-theory.sums-of-finite-sequences-of-rational-numbers where
+```
+
+Imports
+
+```agda
+open import commutative-algebra.sums-of-finite-sequences-of-elements-commutative-rings
+
+open import elementary-number-theory.addition-natural-numbers
+open import elementary-number-theory.addition-rational-numbers
+open import elementary-number-theory.inequality-rational-numbers
+open import elementary-number-theory.multiplication-rational-numbers
+open import elementary-number-theory.natural-numbers
+open import elementary-number-theory.rational-numbers
+open import elementary-number-theory.ring-of-rational-numbers
+
+open import foundation.function-types
+open import foundation.identity-types
+
+open import lists.finite-sequences
+
+open import univalent-combinatorics.coproduct-types
+open import univalent-combinatorics.standard-finite-types
+```
+
+
+
+## Idea
+
+The
+{{#concept "sum operation" Disambiguation="of a finite sequence of rational numbers" Agda=sum-fin-sequence-ℚ}}
+extends [addition](elementary-number-theory.addition-rational-numbers.md) on the
+[rational numbers](elementary-number-theory.rational-numbers.md) to any
+[finite sequence](lists.finite-sequences.md) of rational numbers.
+
+## Definition
+
+```agda
+sum-fin-sequence-ℚ : (n : ℕ) → fin-sequence ℚ n → ℚ
+sum-fin-sequence-ℚ = sum-fin-sequence-type-Commutative-Ring commutative-ring-ℚ
+```
+
+## Properties
+
+### The sum of a constant sequence is multiplication by a natural number
+
+```agda
+abstract
+ sum-constant-fin-sequence-ℚ :
+ (n : ℕ) (q : ℚ) →
+ sum-fin-sequence-ℚ n (λ _ → q) = rational-ℕ n *ℚ q
+ sum-constant-fin-sequence-ℚ n q =
+ sum-constant-fin-sequence-type-Commutative-Ring commutative-ring-ℚ n q ∙
+ inv (left-mul-rational-nat-ℚ n q)
+```
+
+### If `aₙ ≤ bₙ` for each `n`, then `Σ aₙ ≤ Σ bₙ`
+
+```agda
+abstract
+ preserves-leq-sum-fin-sequence-ℚ :
+ (n : ℕ) (a b : fin-sequence ℚ n) → ((k : Fin n) → leq-ℚ (a k) (b k)) →
+ leq-ℚ (sum-fin-sequence-ℚ n a) (sum-fin-sequence-ℚ n b)
+ preserves-leq-sum-fin-sequence-ℚ 0 _ _ _ = refl-leq-ℚ zero-ℚ
+ preserves-leq-sum-fin-sequence-ℚ (succ-ℕ n) a b H =
+ preserves-leq-add-ℚ
+ ( preserves-leq-sum-fin-sequence-ℚ
+ ( n)
+ ( a ∘ inl-Fin n)
+ ( b ∘ inl-Fin n)
+ ( H ∘ inl-Fin n))
+ ( H (neg-one-Fin n))
+```
+
+### Multiplication is distributive over sums on finite sequences
+
+```agda
+abstract
+ left-distributive-mul-sum-fin-sequence-ℚ :
+ (n : ℕ) (q : ℚ) (a : fin-sequence ℚ n) →
+ q *ℚ sum-fin-sequence-ℚ n a = sum-fin-sequence-ℚ n (mul-ℚ q ∘ a)
+ left-distributive-mul-sum-fin-sequence-ℚ =
+ left-distributive-mul-sum-fin-sequence-type-Commutative-Ring
+ ( commutative-ring-ℚ)
+```
+
+### Splitting sums of `n + m` elements into a sum of `n` elements and a sum of `m` elements
+
+```agda
+split-sum-fin-sequence-ℚ :
+ (n m : ℕ) (f : fin-sequence ℚ (n +ℕ m)) →
+ sum-fin-sequence-ℚ (n +ℕ m) f =
+ sum-fin-sequence-ℚ n (f ∘ inl-coproduct-Fin n m) +ℚ
+ sum-fin-sequence-ℚ m (f ∘ inr-coproduct-Fin n m)
+split-sum-fin-sequence-ℚ =
+ split-sum-fin-sequence-type-Commutative-Ring commutative-ring-ℚ
+```
+
+### The sum of a single element is the single element
+
+```agda
+compute-sum-one-element-ℚ :
+ (a : fin-sequence ℚ 1) → sum-fin-sequence-ℚ 1 a = a (zero-Fin 0)
+compute-sum-one-element-ℚ =
+ compute-sum-one-element-Commutative-Ring commutative-ring-ℚ
+```
diff --git a/src/elementary-number-theory/triangular-numbers.lagda.md b/src/elementary-number-theory/triangular-numbers.lagda.md
index 0a3f74aae1..d7c5a79cef 100644
--- a/src/elementary-number-theory/triangular-numbers.lagda.md
+++ b/src/elementary-number-theory/triangular-numbers.lagda.md
@@ -9,15 +9,11 @@ module elementary-number-theory.triangular-numbers where
Imports
```agda
-open import analysis.convergent-series-metric-abelian-groups
-open import analysis.series-metric-abelian-groups
-
open import elementary-number-theory.addition-natural-numbers
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.divisibility-natural-numbers
-open import elementary-number-theory.metric-additive-group-of-rational-numbers
open import elementary-number-theory.multiplication-natural-numbers
open import elementary-number-theory.multiplication-positive-rational-numbers
open import elementary-number-theory.multiplication-rational-numbers
@@ -27,6 +23,7 @@ open import elementary-number-theory.nonzero-natural-numbers
open import elementary-number-theory.positive-rational-numbers
open import elementary-number-theory.rational-numbers
open import elementary-number-theory.semiring-of-natural-numbers
+open import elementary-number-theory.series-rational-numbers
open import elementary-number-theory.unit-fractions-rational-numbers
open import foundation.action-on-identifications-functions
@@ -203,15 +200,14 @@ abstract
( eq-nonzero-ℕ
( compute-double-triangular-number-ℕ (succ-ℕ n)))))
-series-reciprocal-triangular-number-ℕ : series-Metric-Ab metric-ab-add-ℚ
+series-reciprocal-triangular-number-ℕ : series-ℚ
series-reciprocal-triangular-number-ℕ =
- series-terms-Metric-Ab reciprocal-triangular-number-succ-ℕ
+ series-terms-ℚ reciprocal-triangular-number-succ-ℕ
abstract
compute-partial-sum-series-reciprocal-triangular-number-ℕ :
(n : ℕ) →
- partial-sum-series-Metric-Ab
- ( metric-ab-add-ℚ)
+ partial-sum-series-ℚ
( series-reciprocal-triangular-number-ℕ)
( n) =
rational-ℕ 2 *ℚ (one-ℚ -ℚ reciprocal-rational-succ-ℕ n)
@@ -227,8 +223,7 @@ abstract
by right-zero-law-mul-ℚ _)
compute-partial-sum-series-reciprocal-triangular-number-ℕ (succ-ℕ n) =
equational-reasoning
- partial-sum-series-Metric-Ab
- ( metric-ab-add-ℚ)
+ partial-sum-series-ℚ
( series-reciprocal-triangular-number-ℕ)
( n) +ℚ
reciprocal-triangular-number-succ-ℕ n
@@ -271,7 +266,7 @@ This theorem is the [42nd](literature.100-theorems.md#42) theorem on
```agda
abstract
sum-reciprocal-triangular-number-ℕ :
- is-sum-series-Metric-Ab
+ is-sum-series-ℚ
( series-reciprocal-triangular-number-ℕ)
( rational-ℕ 2)
sum-reciprocal-triangular-number-ℕ =
diff --git a/src/elementary-number-theory/unit-fractions-rational-numbers.lagda.md b/src/elementary-number-theory/unit-fractions-rational-numbers.lagda.md
index 035a9a963f..8d26e1dcbc 100644
--- a/src/elementary-number-theory/unit-fractions-rational-numbers.lagda.md
+++ b/src/elementary-number-theory/unit-fractions-rational-numbers.lagda.md
@@ -119,6 +119,19 @@ module _
( eq-denominator-reciprocal-rational-ℤ⁺)
```
+### Taking the reciprocal of a nonzero natural number distributes over multiplication
+
+```agda
+abstract
+ distributive-reciprocal-mul-ℕ⁺ :
+ (m n : ℕ⁺) →
+ reciprocal-rational-ℕ⁺ (m *ℕ⁺ n) =
+ reciprocal-rational-ℕ⁺ m *ℚ reciprocal-rational-ℕ⁺ n
+ distributive-reciprocal-mul-ℕ⁺ m⁺@(m , _) n⁺@(n , _) =
+ ap rational-inv-ℚ⁺ (eq-ℚ⁺ (inv (mul-rational-ℕ m n))) ∙
+ ap rational-ℚ⁺ (distributive-inv-mul-ℚ⁺ _ _)
+```
+
### If `m ≤ n`, the reciprocal of `n` is less than or equal to the reciprocal of `n`
```agda
diff --git a/src/group-theory/sums-of-finite-sequences-of-elements-abelian-groups.lagda.md b/src/group-theory/sums-of-finite-sequences-of-elements-abelian-groups.lagda.md
index 266b0d6d45..6eb7fb632f 100644
--- a/src/group-theory/sums-of-finite-sequences-of-elements-abelian-groups.lagda.md
+++ b/src/group-theory/sums-of-finite-sequences-of-elements-abelian-groups.lagda.md
@@ -218,11 +218,11 @@ module _
```agda
abstract
- constant-sum-fin-sequence-type-Ab :
+ sum-constant-fin-sequence-type-Ab :
{l : Level} (G : Ab l) (n : ℕ) (x : type-Ab G) →
sum-fin-sequence-type-Ab G n (λ _ → x) = multiple-Ab G n x
- constant-sum-fin-sequence-type-Ab G =
- constant-sum-fin-sequence-type-Group (group-Ab G)
+ sum-constant-fin-sequence-type-Ab G =
+ sum-constant-fin-sequence-type-Group (group-Ab G)
```
## See also
diff --git a/src/group-theory/sums-of-finite-sequences-of-elements-commutative-monoids.lagda.md b/src/group-theory/sums-of-finite-sequences-of-elements-commutative-monoids.lagda.md
index 374bcb0542..2386f64fef 100644
--- a/src/group-theory/sums-of-finite-sequences-of-elements-commutative-monoids.lagda.md
+++ b/src/group-theory/sums-of-finite-sequences-of-elements-commutative-monoids.lagda.md
@@ -260,13 +260,13 @@ module _
```agda
abstract
- constant-sum-fin-sequence-type-Commutative-Monoid :
+ sum-constant-fin-sequence-type-Commutative-Monoid :
{l : Level} (M : Commutative-Monoid l) (n : ℕ) →
(x : type-Commutative-Monoid M) →
sum-fin-sequence-type-Commutative-Monoid M n (λ _ → x) =
power-Commutative-Monoid M n x
- constant-sum-fin-sequence-type-Commutative-Monoid M =
- constant-sum-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)
+ sum-constant-fin-sequence-type-Commutative-Monoid M =
+ sum-constant-fin-sequence-type-Monoid (monoid-Commutative-Monoid M)
```
## See also
diff --git a/src/group-theory/sums-of-finite-sequences-of-elements-groups.lagda.md b/src/group-theory/sums-of-finite-sequences-of-elements-groups.lagda.md
index 33badd9fbc..27101833bb 100644
--- a/src/group-theory/sums-of-finite-sequences-of-elements-groups.lagda.md
+++ b/src/group-theory/sums-of-finite-sequences-of-elements-groups.lagda.md
@@ -184,9 +184,9 @@ split-sum-fin-sequence-type-Group G =
```agda
abstract
- constant-sum-fin-sequence-type-Group :
+ sum-constant-fin-sequence-type-Group :
{l : Level} (G : Group l) (n : ℕ) (x : type-Group G) →
sum-fin-sequence-type-Group G n (λ _ → x) = power-Group G n x
- constant-sum-fin-sequence-type-Group G =
- constant-sum-fin-sequence-type-Monoid (monoid-Group G)
+ sum-constant-fin-sequence-type-Group G =
+ sum-constant-fin-sequence-type-Monoid (monoid-Group G)
```
diff --git a/src/group-theory/sums-of-finite-sequences-of-elements-monoids.lagda.md b/src/group-theory/sums-of-finite-sequences-of-elements-monoids.lagda.md
index 4b58cd16e5..dcf4a4ff64 100644
--- a/src/group-theory/sums-of-finite-sequences-of-elements-monoids.lagda.md
+++ b/src/group-theory/sums-of-finite-sequences-of-elements-monoids.lagda.md
@@ -213,14 +213,14 @@ split-sum-fin-sequence-type-Monoid M n (succ-ℕ m) f =
```agda
abstract
- constant-sum-fin-sequence-type-Monoid :
+ sum-constant-fin-sequence-type-Monoid :
{l : Level} (M : Monoid l) (n : ℕ) (x : type-Monoid M) →
sum-fin-sequence-type-Monoid M n (λ _ → x) = power-Monoid M n x
- constant-sum-fin-sequence-type-Monoid M 0 x = refl
- constant-sum-fin-sequence-type-Monoid M 1 x =
+ sum-constant-fin-sequence-type-Monoid M 0 x = refl
+ sum-constant-fin-sequence-type-Monoid M 1 x =
compute-sum-one-element-Monoid M (λ _ → x)
- constant-sum-fin-sequence-type-Monoid M (succ-ℕ n@(succ-ℕ _)) x =
+ sum-constant-fin-sequence-type-Monoid M (succ-ℕ n@(succ-ℕ _)) x =
ap-mul-Monoid M
- ( constant-sum-fin-sequence-type-Monoid M n x)
+ ( sum-constant-fin-sequence-type-Monoid M n x)
( refl)
```
diff --git a/src/literature/100-theorems.lagda.md b/src/literature/100-theorems.lagda.md
index 862d0a1cea..81353f5e14 100644
--- a/src/literature/100-theorems.lagda.md
+++ b/src/literature/100-theorems.lagda.md
@@ -46,6 +46,15 @@ open import foundation.cantor-schroder-bernstein-decidable-embeddings using
( Cantor-Schröder-Bernstein-WLPO)
```
+### 34. Divergence of the Harmonic Series {#34}
+
+**Author:** [Louis Wasserman](https://github.com/lowasser)
+
+```agda
+open import elementary-number-theory.harmonic-series-rational-numbers using
+ ( grows-without-bound-harmonic-series-ℚ)
+```
+
### 42. Sum of the Reciprocals of the Triangular Numbers {#42}
**Author:** [Louis Wasserman](https://github.com/lowasser)
diff --git a/src/order-theory/increasing-sequences-posets.lagda.md b/src/order-theory/increasing-sequences-posets.lagda.md
index f822eec21b..da910eecb4 100644
--- a/src/order-theory/increasing-sequences-posets.lagda.md
+++ b/src/order-theory/increasing-sequences-posets.lagda.md
@@ -15,12 +15,15 @@ open import foundation.dependent-pair-types
open import foundation.function-types
open import foundation.identity-types
open import foundation.propositions
+open import foundation.unit-type
open import foundation.universe-levels
open import lists.sequences
open import order-theory.order-preserving-maps-posets
+open import order-theory.order-preserving-maps-preorders
open import order-theory.posets
+open import order-theory.preorders
open import order-theory.sequences-posets
open import order-theory.subposets
```
@@ -85,6 +88,51 @@ module _
## Properties
+### Sequences that are increasing by induction
+
+```agda
+module _
+ {l1 l2 : Level} (P : Preorder l1 l2)
+ where
+
+ preserves-order-ind-ℕ-Preorder :
+ (f : ℕ → type-Preorder P) →
+ ((n : ℕ) → leq-Preorder P (f n) (f (succ-ℕ n))) →
+ preserves-order-Preorder ℕ-Preorder P f
+ preserves-order-ind-ℕ-Preorder f H zero-ℕ zero-ℕ p =
+ refl-leq-Preorder P (f zero-ℕ)
+ preserves-order-ind-ℕ-Preorder f H zero-ℕ (succ-ℕ m) p =
+ transitive-leq-Preorder P (f 0) (f m) (f (succ-ℕ m))
+ ( H m)
+ ( preserves-order-ind-ℕ-Preorder f H zero-ℕ m star)
+ preserves-order-ind-ℕ-Preorder f H (succ-ℕ n) zero-ℕ ()
+ preserves-order-ind-ℕ-Preorder f H (succ-ℕ n) (succ-ℕ m) =
+ preserves-order-ind-ℕ-Preorder (f ∘ succ-ℕ) (H ∘ succ-ℕ) n m
+
+ hom-ind-ℕ-Preorder :
+ (f : ℕ → type-Preorder P) →
+ ((n : ℕ) → leq-Preorder P (f n) (f (succ-ℕ n))) →
+ hom-Preorder (ℕ-Preorder) P
+ hom-ind-ℕ-Preorder f H = f , preserves-order-ind-ℕ-Preorder f H
+
+module _
+ {l1 l2 : Level} (P : Poset l1 l2)
+ where
+
+ preserves-order-ind-ℕ-Poset :
+ (f : ℕ → type-Poset P) →
+ ((n : ℕ) → leq-Poset P (f n) (f (succ-ℕ n))) →
+ preserves-order-Poset ℕ-Poset P f
+ preserves-order-ind-ℕ-Poset =
+ preserves-order-ind-ℕ-Preorder (preorder-Poset P)
+
+ hom-ind-ℕ-Poset :
+ (f : ℕ → type-Poset P) →
+ ((n : ℕ) → leq-Poset P (f n) (f (succ-ℕ n))) →
+ hom-Poset (ℕ-Poset) P
+ hom-ind-ℕ-Poset = hom-ind-ℕ-Preorder (preorder-Poset P)
+```
+
### A sequence `u` in a poset is increasing if and only if `uₙ ≤ uₙ₊₁` for all `n : ℕ`
```agda
diff --git a/src/ring-theory/arithmetic-series-semirings.lagda.md b/src/ring-theory/arithmetic-series-semirings.lagda.md
index af626c0a4d..653e708c38 100644
--- a/src/ring-theory/arithmetic-series-semirings.lagda.md
+++ b/src/ring-theory/arithmetic-series-semirings.lagda.md
@@ -180,7 +180,7 @@ module _
compute-sum-add-mul-nat-Semiring n =
ap-binary
( add-Semiring R)
- ( inv (constant-sum-fin-sequence-type-Semiring R (succ-ℕ n) a))
+ ( inv (sum-constant-fin-sequence-type-Semiring R (succ-ℕ n) a))
( ( ap
( λ i → multiple-Semiring R i d)
( htpy-sum-leq-triangular-ℕ n)) ∙
diff --git a/src/ring-theory/sums-of-finite-sequences-of-elements-rings.lagda.md b/src/ring-theory/sums-of-finite-sequences-of-elements-rings.lagda.md
index c65dd2c1a7..17eec95acf 100644
--- a/src/ring-theory/sums-of-finite-sequences-of-elements-rings.lagda.md
+++ b/src/ring-theory/sums-of-finite-sequences-of-elements-rings.lagda.md
@@ -26,6 +26,7 @@ open import linear-algebra.linear-maps-left-modules-rings
open import lists.finite-sequences
+open import ring-theory.multiples-of-elements-rings
open import ring-theory.rings
open import ring-theory.sums-of-finite-sequences-of-elements-semirings
@@ -254,6 +255,18 @@ module _
( λ c x → inv (left-distributive-mul-sum-fin-sequence-type-Ring R n c x))
```
+### The sum of a constant finite sequence in a ring is scalar multiplication by the length of the sequence
+
+```agda
+abstract
+ sum-constant-fin-sequence-type-Ring :
+ {l : Level} (R : Ring l) (n : ℕ) (x : type-Ring R) →
+ sum-fin-sequence-type-Ring R n (λ _ → x) =
+ multiple-Ring R n x
+ sum-constant-fin-sequence-type-Ring R =
+ sum-constant-fin-sequence-type-Semiring ( semiring-Ring R)
+```
+
## See also
- [Sums of finite families of elements in rings](ring-theory.sums-of-finite-families-of-elements-rings.md)
diff --git a/src/ring-theory/sums-of-finite-sequences-of-elements-semirings.lagda.md b/src/ring-theory/sums-of-finite-sequences-of-elements-semirings.lagda.md
index fc420c7089..be44be3ed9 100644
--- a/src/ring-theory/sums-of-finite-sequences-of-elements-semirings.lagda.md
+++ b/src/ring-theory/sums-of-finite-sequences-of-elements-semirings.lagda.md
@@ -286,12 +286,12 @@ module _
```agda
abstract
- constant-sum-fin-sequence-type-Semiring :
+ sum-constant-fin-sequence-type-Semiring :
{l : Level} (R : Semiring l) (n : ℕ) (x : type-Semiring R) →
sum-fin-sequence-type-Semiring R n (λ _ → x) =
multiple-Semiring R n x
- constant-sum-fin-sequence-type-Semiring R =
- constant-sum-fin-sequence-type-Commutative-Monoid
+ sum-constant-fin-sequence-type-Semiring R =
+ sum-constant-fin-sequence-type-Commutative-Monoid
( additive-commutative-monoid-Semiring R)
```
diff --git a/src/set-theory/increasing-binary-sequences.lagda.md b/src/set-theory/increasing-binary-sequences.lagda.md
index f82b214c0a..76aadf1404 100644
--- a/src/set-theory/increasing-binary-sequences.lagda.md
+++ b/src/set-theory/increasing-binary-sequences.lagda.md
@@ -39,6 +39,7 @@ open import foundation.universe-levels
open import foundation-core.identity-types
+open import order-theory.increasing-sequences-posets
open import order-theory.order-preserving-maps-posets
open import set-theory.cantor-space