diff --git a/src/analysis.lagda.md b/src/analysis.lagda.md index 8790cf7fd6..a608189df4 100644 --- a/src/analysis.lagda.md +++ b/src/analysis.lagda.md @@ -3,6 +3,8 @@ ```agda module analysis where +open import analysis.absolute-convergence-series-real-banach-spaces public +open import analysis.absolute-convergence-series-real-numbers public open import analysis.additive-complete-metric-abelian-groups-real-banach-spaces public open import analysis.complete-metric-abelian-groups public open import analysis.convergent-series-complete-metric-abelian-groups public diff --git a/src/analysis/absolute-convergence-series-real-banach-spaces.lagda.md b/src/analysis/absolute-convergence-series-real-banach-spaces.lagda.md new file mode 100644 index 0000000000..b85da50b37 --- /dev/null +++ b/src/analysis/absolute-convergence-series-real-banach-spaces.lagda.md @@ -0,0 +1,203 @@ +# Absolute convergence of series in real Banach spaces + +```agda +module analysis.absolute-convergence-series-real-banach-spaces where +``` + +
Imports + +```agda +open import analysis.convergent-series-real-banach-spaces +open import analysis.convergent-series-real-numbers +open import analysis.series-real-banach-spaces +open import analysis.series-real-numbers + +open import elementary-number-theory.addition-natural-numbers +open import elementary-number-theory.inequality-natural-numbers +open import elementary-number-theory.natural-numbers +open import elementary-number-theory.positive-rational-numbers + +open import foundation.action-on-identifications-functions +open import foundation.coproduct-types +open import foundation.dependent-pair-types +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 foundation.universe-levels + +open import linear-algebra.real-banach-spaces +open import linear-algebra.sums-of-finite-sequences-of-elements-real-banach-spaces + +open import metric-spaces.cauchy-sequences-metric-spaces + +open import order-theory.large-posets + +open import real-numbers.cauchy-sequences-real-numbers +open import real-numbers.difference-real-numbers +open import real-numbers.distance-real-numbers +open import real-numbers.inequality-real-numbers +open import real-numbers.rational-real-numbers +``` + +
+ +## Idea + +A [series](analysis.series-real-banach-spaces.md) `Σ aₙ` in a +[real Banach space](linear-algebra.real-banach-spaces.md) is said to +{{#concept "absolutely converge" WDID=Q332465 WD="absolute convergence" Agda=is-absolutely-convergent-prop-series-ℝ-Banach-Space Disambiguation="series in a real Banach space"}} +if the series of norms `Σ ∥aₙ∥` is a +[convergent series](analysis.convergent-series-real-numbers.md) of +[real numbers](real-numbers.dedekind-real-numbers.md). + +## Definition + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + (σ : series-ℝ-Banach-Space V) + where + + is-absolutely-convergent-prop-series-ℝ-Banach-Space : Prop (lsuc l1) + is-absolutely-convergent-prop-series-ℝ-Banach-Space = + is-convergent-prop-series-ℝ (map-norm-series-ℝ-Banach-Space V σ) + + is-absolutely-convergent-series-ℝ-Banach-Space : UU (lsuc l1) + is-absolutely-convergent-series-ℝ-Banach-Space = + type-Prop is-absolutely-convergent-prop-series-ℝ-Banach-Space +``` + +## Properties + +### A Cauchy modulus for the sequence of partial sums of norms of terms in a series is a Cauchy modulus for the series + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + (σ : series-ℝ-Banach-Space V) + (M : + is-cauchy-sequence-ℝ + ( partial-sum-series-ℝ (map-norm-series-ℝ-Banach-Space V σ))) + where + + abstract + neighborhood-add-cauchy-modulus-partial-sum-norm-series-ℝ-Banach-Space : + (ε : ℚ⁺) (n k : ℕ) → leq-ℕ (pr1 (M ε)) n → + neighborhood-ℝ-Banach-Space + ( V) + ( ε) + ( partial-sum-series-ℝ-Banach-Space V σ (n +ℕ k)) + ( partial-sum-series-ℝ-Banach-Space V σ n) + neighborhood-add-cauchy-modulus-partial-sum-norm-series-ℝ-Banach-Space + ε n k με≤n = + let + open inequality-reasoning-Large-Poset ℝ-Large-Poset + in + chain-of-inequalities + dist-ℝ-Banach-Space V + ( partial-sum-series-ℝ-Banach-Space V σ (n +ℕ k)) + ( partial-sum-series-ℝ-Banach-Space V σ n) + ≤ map-norm-ℝ-Banach-Space V + ( partial-sum-series-ℝ-Banach-Space V + ( drop-series-ℝ-Banach-Space V n σ) + ( k)) + by + leq-eq-ℝ + ( ap + ( map-norm-ℝ-Banach-Space V) + ( inv (partial-sum-drop-series-ℝ-Banach-Space V n σ k))) + ≤ partial-sum-series-ℝ + ( map-norm-series-ℝ-Banach-Space V + ( drop-series-ℝ-Banach-Space V n σ)) + ( k) + by + triangle-inequality-norm-sum-fin-sequence-type-ℝ-Banach-Space + ( V) + ( k) + ( _) + ≤ ( partial-sum-series-ℝ + ( map-norm-series-ℝ-Banach-Space V σ) + ( n +ℕ k)) -ℝ + ( partial-sum-series-ℝ (map-norm-series-ℝ-Banach-Space V σ) n) + by + leq-eq-ℝ + ( partial-sum-drop-series-ℝ + ( n) + ( map-norm-series-ℝ-Banach-Space V σ) + ( k)) + ≤ dist-ℝ + ( partial-sum-series-ℝ + ( map-norm-series-ℝ-Banach-Space V σ) + ( n +ℕ k)) + ( partial-sum-series-ℝ + ( map-norm-series-ℝ-Banach-Space V σ) + ( n)) + by leq-diff-dist-ℝ _ _ + ≤ real-ℚ⁺ ε + by + leq-dist-neighborhood-ℝ + ( ε) + ( _) + ( _) + ( pr2 + ( M ε) + ( n +ℕ k) + ( n) + ( transitive-leq-ℕ (pr1 (M ε)) n (n +ℕ k) (leq-add-ℕ n k) με≤n) + ( με≤n)) + + is-cauchy-partial-sum-is-cauchy-partial-sum-norm-series-ℝ-Banach-Space : + is-cauchy-sequence-Metric-Space + ( metric-space-ℝ-Banach-Space V) + ( partial-sum-series-ℝ-Banach-Space V σ) + is-cauchy-partial-sum-is-cauchy-partial-sum-norm-series-ℝ-Banach-Space = + is-cauchy-sequence-modulus-neighborhood-add-sequence-Metric-Space + ( metric-space-ℝ-Banach-Space V) + ( partial-sum-series-ℝ-Banach-Space V σ) + ( pr1 ∘ M) + ( neighborhood-add-cauchy-modulus-partial-sum-norm-series-ℝ-Banach-Space) +``` + +### If a series is absolutely convergent, it is convergent + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + (σ : series-ℝ-Banach-Space V) + where + + is-convergent-is-absolutely-convergent-series-ℝ-Banach-Space : + is-absolutely-convergent-series-ℝ-Banach-Space V σ → + is-convergent-series-ℝ-Banach-Space V σ + is-convergent-is-absolutely-convergent-series-ℝ-Banach-Space (lim-Σnorm , H) = + let + open + do-syntax-trunc-Prop + ( is-convergent-prop-series-ℝ-Banach-Space V σ) + in do + cauchy-mod ← + exists-cauchy-modulus-has-limit-sequence-ℝ + ( partial-sum-series-ℝ (map-norm-series-ℝ-Banach-Space V σ)) + ( lim-Σnorm , H) + is-convergent-is-cauchy-sequence-partial-sum-series-ℝ-Banach-Space + ( V) + ( σ) + ( is-cauchy-partial-sum-is-cauchy-partial-sum-norm-series-ℝ-Banach-Space + ( V) + ( σ) + ( cauchy-mod)) +``` + +## See also + +- [Absolute convergence of series of real numbers](analysis.absolute-convergence-series-real-numbers.md) + +## External links + +- [Absolute convergence of series in Banach spaces](https://en.wikipedia.org/wiki/Absolute_convergence#Proof_that_any_absolutely_convergent_series_in_a_Banach_space_is_convergent) + on Wikipedia diff --git a/src/analysis/absolute-convergence-series-real-numbers.lagda.md b/src/analysis/absolute-convergence-series-real-numbers.lagda.md new file mode 100644 index 0000000000..309cbb81ea --- /dev/null +++ b/src/analysis/absolute-convergence-series-real-numbers.lagda.md @@ -0,0 +1,80 @@ +# Absolute convergence of series in the real numbers + +```agda +module analysis.absolute-convergence-series-real-numbers where +``` + +
Imports + +```agda +open import analysis.absolute-convergence-series-real-banach-spaces +open import analysis.convergent-series-real-banach-spaces +open import analysis.convergent-series-real-numbers +open import analysis.series-real-banach-spaces +open import analysis.series-real-numbers + +open import foundation.propositions +open import foundation.universe-levels + +open import linear-algebra.real-banach-spaces +``` + +
+ +## Idea + +A [series](analysis.series-real-numbers.md) `Σ aₙ` of +[real numbers](real-numbers.dedekind-real-numbers.md) is said to +{{#concept "absolutely converge" WDID=Q332465 WD="absolute convergence" Agda=is-absolutely-convergent-prop-series-ℝ Disambiguation="series of real numbers"}} +if the series of absolute values `Σ |aₙ|` +[converges](analysis.convergent-series-real-numbers.md). + +## Definition + +```agda +module _ + {l : Level} + (σ : series-ℝ l) + where + + is-absolutely-convergent-prop-series-ℝ : Prop (lsuc l) + is-absolutely-convergent-prop-series-ℝ = + is-convergent-prop-series-ℝ (map-abs-series-ℝ σ) + + is-absolutely-convergent-series-ℝ : UU (lsuc l) + is-absolutely-convergent-series-ℝ = + type-Prop is-absolutely-convergent-prop-series-ℝ +``` + +## Properties + +### If a series of real numbers is absolutely convergent, it is convergent + +```agda +module _ + {l : Level} + (σ : series-ℝ l) + where + + is-convergent-is-absolutely-convergent-series-ℝ : + is-absolutely-convergent-series-ℝ σ → + is-convergent-series-ℝ σ + is-convergent-is-absolutely-convergent-series-ℝ H = + is-convergent-real-is-convergent-real-banach-space-ℝ + ( term-series-ℝ σ) + ( is-convergent-is-absolutely-convergent-series-ℝ-Banach-Space + ( real-banach-space-ℝ l) + ( series-terms-ℝ-Banach-Space + ( real-banach-space-ℝ l) + ( term-series-ℝ σ)) + ( H)) +``` + +## See also + +- [Absolute convergence of series in real Banach spaces](analysis.absolute-convergence-series-real-banach-spaces.md) + +## External links + +- [Absolute convergence](https://en.wikipedia.org/wiki/Absolute_convergence) on + Wikipedia diff --git a/src/analysis/convergent-series-complete-metric-abelian-groups.lagda.md b/src/analysis/convergent-series-complete-metric-abelian-groups.lagda.md index a2f53f1cf5..756e56a460 100644 --- a/src/analysis/convergent-series-complete-metric-abelian-groups.lagda.md +++ b/src/analysis/convergent-series-complete-metric-abelian-groups.lagda.md @@ -14,6 +14,7 @@ open import analysis.series-complete-metric-abelian-groups open import foundation.dependent-pair-types open import foundation.inhabited-types open import foundation.propositions +open import foundation.subtypes open import foundation.universe-levels open import metric-spaces.cauchy-sequences-complete-metric-spaces @@ -55,6 +56,11 @@ module _ is-convergent-series-Complete-Metric-Ab : UU (l1 ⊔ l2) is-convergent-series-Complete-Metric-Ab = is-convergent-series-Metric-Ab σ + +convergent-series-Complete-Metric-Ab : + {l1 l2 : Level} (G : Complete-Metric-Ab l1 l2) → UU (l1 ⊔ l2) +convergent-series-Complete-Metric-Ab G = + type-subtype (is-convergent-prop-series-Complete-Metric-Ab G) ``` ## Properties diff --git a/src/analysis/convergent-series-real-banach-spaces.lagda.md b/src/analysis/convergent-series-real-banach-spaces.lagda.md index b553a4c38d..f790c49f26 100644 --- a/src/analysis/convergent-series-real-banach-spaces.lagda.md +++ b/src/analysis/convergent-series-real-banach-spaces.lagda.md @@ -10,16 +10,32 @@ module analysis.convergent-series-real-banach-spaces where open import analysis.additive-complete-metric-abelian-groups-real-banach-spaces open import analysis.convergent-series-complete-metric-abelian-groups open import analysis.convergent-series-metric-abelian-groups +open import analysis.convergent-series-real-numbers open import analysis.series-real-banach-spaces +open import analysis.series-real-numbers open import foundation.dependent-pair-types +open import foundation.function-types open import foundation.inhabited-types +open import foundation.logical-equivalences open import foundation.propositions +open import foundation.subtypes open import foundation.universe-levels +open import linear-algebra.normed-real-vector-spaces open import linear-algebra.real-banach-spaces +open import lists.sequences + open import metric-spaces.cauchy-sequences-metric-spaces +open import metric-spaces.limits-of-sequences-metric-spaces + +open import real-numbers.dedekind-real-numbers +open import real-numbers.distance-real-numbers +open import real-numbers.metric-space-of-real-numbers +open import real-numbers.sums-of-finite-sequences-of-real-numbers + +open import univalent-combinatorics.standard-finite-types ``` @@ -56,6 +72,11 @@ module _ is-convergent-series-ℝ-Banach-Space : UU (l1 ⊔ l2) is-convergent-series-ℝ-Banach-Space = is-convergent-series-Metric-Ab σ + +convergent-series-ℝ-Banach-Space : + {l1 l2 : Level} (V : ℝ-Banach-Space l1 l2) → UU (l1 ⊔ l2) +convergent-series-ℝ-Banach-Space V = + type-subtype (is-convergent-prop-series-ℝ-Banach-Space V) ``` ## Properties @@ -80,6 +101,45 @@ module _ ( σ) ``` +### A series in the real Banach space of real numbers converges if and only if its corresponding series of real numbers converges + +```agda +module _ + {l : Level} + (σ : sequence (ℝ l)) + where + + is-convergent-real-is-convergent-real-banach-space-ℝ : + is-convergent-series-ℝ-Banach-Space + ( real-banach-space-ℝ l) + ( series-terms-ℝ-Banach-Space (real-banach-space-ℝ l) σ) → + is-convergent-series-ℝ (series-terms-ℝ σ) + is-convergent-real-is-convergent-real-banach-space-ℝ (lim , is-lim) = + ( lim , + preserves-limits-sequence-isometry-Metric-Space + ( metric-space-Normed-ℝ-Vector-Space (normed-real-vector-space-ℝ l)) + ( metric-space-ℝ l) + ( id , λ d x y → inv-iff (neighborhood-iff-leq-dist-ℝ d x y)) + ( λ n → sum-fin-sequence-ℝ n (σ ∘ nat-Fin n)) + ( lim) + ( is-lim)) + + is-convergent-real-banach-space-is-convergent-ℝ : + is-convergent-series-ℝ (series-terms-ℝ σ) → + is-convergent-series-ℝ-Banach-Space + ( real-banach-space-ℝ l) + ( series-terms-ℝ-Banach-Space (real-banach-space-ℝ l) σ) + is-convergent-real-banach-space-is-convergent-ℝ (lim , is-lim) = + ( lim , + preserves-limits-sequence-isometry-Metric-Space + ( metric-space-ℝ l) + ( metric-space-Normed-ℝ-Vector-Space (normed-real-vector-space-ℝ l)) + ( id , λ d x y → neighborhood-iff-leq-dist-ℝ d x y) + ( λ n → sum-fin-sequence-ℝ n (σ ∘ nat-Fin n)) + ( lim) + ( is-lim)) +``` + ### If a series converges, there exists a modulus making its partial sums a Cauchy sequence ```agda diff --git a/src/analysis/convergent-series-real-numbers.lagda.md b/src/analysis/convergent-series-real-numbers.lagda.md index 16804c6e49..1226c36539 100644 --- a/src/analysis/convergent-series-real-numbers.lagda.md +++ b/src/analysis/convergent-series-real-numbers.lagda.md @@ -12,6 +12,7 @@ open import analysis.convergent-series-metric-abelian-groups open import analysis.series-real-numbers open import foundation.propositions +open import foundation.subtypes open import foundation.universe-levels open import real-numbers.cauchy-sequences-real-numbers @@ -48,6 +49,9 @@ module _ is-convergent-series-ℝ : UU (lsuc l) is-convergent-series-ℝ = is-convergent-series-Metric-Ab σ + +convergent-series-ℝ : (l : Level) → UU (lsuc l) +convergent-series-ℝ l = type-subtype (is-convergent-prop-series-ℝ {l}) ``` ## Properties diff --git a/src/analysis/series-real-banach-spaces.lagda.md b/src/analysis/series-real-banach-spaces.lagda.md index dc7d5b3651..12f7c30508 100644 --- a/src/analysis/series-real-banach-spaces.lagda.md +++ b/src/analysis/series-real-banach-spaces.lagda.md @@ -9,7 +9,13 @@ module analysis.series-real-banach-spaces where ```agda open import analysis.metric-abelian-groups-normed-real-vector-spaces open import analysis.series-metric-abelian-groups +open import analysis.series-real-numbers +open import elementary-number-theory.addition-natural-numbers +open import elementary-number-theory.natural-numbers + +open import foundation.function-types +open import foundation.identity-types open import foundation.universe-levels open import linear-algebra.real-banach-spaces @@ -54,3 +60,52 @@ module _ series-ℝ-Banach-Space → sequence (type-ℝ-Banach-Space V) partial-sum-series-ℝ-Banach-Space = partial-sum-series-Metric-Ab ``` + +## Properties + +### The series of norms + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + (σ : series-ℝ-Banach-Space V) + where + + map-norm-series-ℝ-Banach-Space : series-ℝ l1 + map-norm-series-ℝ-Banach-Space = + series-terms-ℝ (map-norm-ℝ-Banach-Space V ∘ term-series-ℝ-Banach-Space V σ) +``` + +### Dropping terms from a series + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + where + + drop-series-ℝ-Banach-Space : + ℕ → series-ℝ-Banach-Space V → series-ℝ-Banach-Space V + drop-series-ℝ-Banach-Space = drop-series-Metric-Ab +``` + +### The partial sums of a series after dropping terms + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + where + + abstract + partial-sum-drop-series-ℝ-Banach-Space : + (n : ℕ) (σ : series-ℝ-Banach-Space V) (i : ℕ) → + partial-sum-series-ℝ-Banach-Space V + ( drop-series-ℝ-Banach-Space V n σ) + ( i) = + diff-ℝ-Banach-Space V + ( partial-sum-series-ℝ-Banach-Space V σ (n +ℕ i)) + ( partial-sum-series-ℝ-Banach-Space V σ n) + partial-sum-drop-series-ℝ-Banach-Space = partial-sum-drop-series-Metric-Ab +``` diff --git a/src/analysis/series-real-numbers.lagda.md b/src/analysis/series-real-numbers.lagda.md index 6b7455caa6..74b2105aae 100644 --- a/src/analysis/series-real-numbers.lagda.md +++ b/src/analysis/series-real-numbers.lagda.md @@ -10,12 +10,26 @@ module analysis.series-real-numbers where open import analysis.series-complete-metric-abelian-groups open import analysis.series-metric-abelian-groups +open import elementary-number-theory.addition-natural-numbers +open import elementary-number-theory.natural-numbers + +open import foundation.dependent-pair-types +open import foundation.function-types +open import foundation.identity-types +open import foundation.propositions open import foundation.universe-levels open import lists.sequences +open import order-theory.increasing-sequences-posets + +open import real-numbers.absolute-value-real-numbers +open import real-numbers.addition-nonnegative-real-numbers open import real-numbers.dedekind-real-numbers +open import real-numbers.difference-real-numbers +open import real-numbers.inequality-real-numbers open import real-numbers.metric-additive-group-of-real-numbers +open import real-numbers.nonnegative-real-numbers ``` @@ -42,3 +56,69 @@ term-series-ℝ = term-series-Metric-Ab partial-sum-series-ℝ : {l : Level} → series-ℝ l → sequence (ℝ l) partial-sum-series-ℝ {l} = partial-sum-series-Metric-Ab ``` + +## Properties + +### The proposition that the terms of a series are nonnegative + +```agda +is-nonnegative-prop-series-ℝ : {l : Level} → series-ℝ l → Prop l +is-nonnegative-prop-series-ℝ σ = + Π-Prop ℕ (λ n → is-nonnegative-prop-ℝ (term-series-ℝ σ n)) + +is-nonnegative-series-ℝ : {l : Level} → series-ℝ l → UU l +is-nonnegative-series-ℝ σ = type-Prop (is-nonnegative-prop-series-ℝ σ) +``` + +### If the terms of a series of real numbers are nonnegative, the partial sums are monotonic + +```agda +abstract + is-increasing-partial-sum-is-nonnegative-term-series-ℝ : + {l : Level} (σ : series-ℝ l) → + is-nonnegative-series-ℝ σ → + is-increasing-sequence-Poset (ℝ-Poset l) (partial-sum-series-ℝ σ) + is-increasing-partial-sum-is-nonnegative-term-series-ℝ {l} σ H = + is-increasing-leq-succ-sequence-Poset + ( ℝ-Poset l) + ( partial-sum-series-ℝ σ) + ( λ n → leq-left-add-real-ℝ⁰⁺ _ (term-series-ℝ σ n , H n)) +``` + +### The series of absolute values + +```agda +module _ + {l : Level} + (σ : series-ℝ l) + where + + map-abs-series-ℝ : series-ℝ l + map-abs-series-ℝ = series-terms-ℝ (abs-ℝ ∘ term-series-ℝ σ) +``` + +### Dropping terms from a series + +```agda +module _ + {l : Level} + where + + drop-series-ℝ : ℕ → series-ℝ l → series-ℝ l + drop-series-ℝ = drop-series-Metric-Ab +``` + +### The partial sums of a series after dropping terms + +```agda +module _ + {l : Level} + where + + abstract + partial-sum-drop-series-ℝ : + (n : ℕ) (σ : series-ℝ l) (i : ℕ) → + partial-sum-series-ℝ (drop-series-ℝ n σ) i = + partial-sum-series-ℝ σ (n +ℕ i) -ℝ partial-sum-series-ℝ σ n + partial-sum-drop-series-ℝ = partial-sum-drop-series-Metric-Ab +``` diff --git a/src/linear-algebra.lagda.md b/src/linear-algebra.lagda.md index 895b8bacdc..1e582c5ef5 100644 --- a/src/linear-algebra.lagda.md +++ b/src/linear-algebra.lagda.md @@ -51,6 +51,8 @@ open import linear-algebra.scalar-multiplication-tuples public open import linear-algebra.scalar-multiplication-tuples-on-rings public open import linear-algebra.seminormed-real-vector-spaces public open import linear-algebra.subsets-left-modules-rings public +open import linear-algebra.sums-of-finite-sequences-of-elements-normed-real-vector-spaces public +open import linear-algebra.sums-of-finite-sequences-of-elements-real-banach-spaces public open import linear-algebra.symmetric-bilinear-forms-real-vector-spaces public open import linear-algebra.transposition-matrices public open import linear-algebra.tuples-on-commutative-monoids public diff --git a/src/linear-algebra/normed-real-vector-spaces.lagda.md b/src/linear-algebra/normed-real-vector-spaces.lagda.md index 42c3f8902a..9f7b406225 100644 --- a/src/linear-algebra/normed-real-vector-spaces.lagda.md +++ b/src/linear-algebra/normed-real-vector-spaces.lagda.md @@ -32,8 +32,10 @@ open import metric-spaces.metrics open import metric-spaces.metrics-of-metric-spaces open import real-numbers.absolute-value-real-numbers +open import real-numbers.addition-real-numbers open import real-numbers.dedekind-real-numbers open import real-numbers.distance-real-numbers +open import real-numbers.inequality-real-numbers open import real-numbers.metric-space-of-real-numbers open import real-numbers.nonnegative-real-numbers open import real-numbers.raising-universe-levels-real-numbers @@ -207,6 +209,15 @@ module _ nonnegative-dist-Seminormed-ℝ-Vector-Space ( seminormed-vector-space-Normed-ℝ-Vector-Space) + triangular-norm-Normed-ℝ-Vector-Space : + (v w : type-Normed-ℝ-Vector-Space) → + leq-ℝ + ( map-norm-Normed-ℝ-Vector-Space (add-Normed-ℝ-Vector-Space v w)) + ( map-norm-Normed-ℝ-Vector-Space v +ℝ map-norm-Normed-ℝ-Vector-Space w) + triangular-norm-Normed-ℝ-Vector-Space = + triangular-seminorm-Seminormed-ℝ-Vector-Space + ( seminormed-vector-space-Normed-ℝ-Vector-Space) + is-extensional-norm-Normed-ℝ-Vector-Space : (v : type-Normed-ℝ-Vector-Space) → map-norm-Normed-ℝ-Vector-Space v = raise-ℝ l1 zero-ℝ → @@ -384,6 +395,23 @@ module _ ( w))))) ``` +### The norm of the zero vector is zero + +```agda +module _ + {l1 l2 : Level} + (V : Normed-ℝ-Vector-Space l1 l2) + where + + abstract + is-zero-norm-zero-Normed-ℝ-Vector-Space : + map-norm-Normed-ℝ-Vector-Space V (zero-Normed-ℝ-Vector-Space V) = + raise-ℝ l1 zero-ℝ + is-zero-norm-zero-Normed-ℝ-Vector-Space = + is-zero-seminorm-zero-Seminormed-ℝ-Vector-Space + ( seminormed-vector-space-Normed-ℝ-Vector-Space V) +``` + ## See also - [Real Banach spaces](linear-algebra.real-banach-spaces.md), normed real vector diff --git a/src/linear-algebra/real-banach-spaces.lagda.md b/src/linear-algebra/real-banach-spaces.lagda.md index bdcc30ac25..60e48f9003 100644 --- a/src/linear-algebra/real-banach-spaces.lagda.md +++ b/src/linear-algebra/real-banach-spaces.lagda.md @@ -9,7 +9,10 @@ module linear-algebra.real-banach-spaces where
Imports ```agda +open import elementary-number-theory.positive-rational-numbers + open import foundation.dependent-pair-types +open import foundation.identity-types open import foundation.propositions open import foundation.subtypes open import foundation.transport-along-identifications @@ -69,6 +72,15 @@ module _ metric-space-ℝ-Banach-Space = metric-space-Normed-ℝ-Vector-Space normed-vector-space-ℝ-Banach-Space + type-ℝ-Banach-Space : UU l2 + type-ℝ-Banach-Space = + type-Normed-ℝ-Vector-Space normed-vector-space-ℝ-Banach-Space + + neighborhood-ℝ-Banach-Space : + ℚ⁺ → type-ℝ-Banach-Space → type-ℝ-Banach-Space → UU l1 + neighborhood-ℝ-Banach-Space = + neighborhood-Metric-Space metric-space-ℝ-Banach-Space + is-complete-metric-space-ℝ-Banach-Space : is-complete-Metric-Space metric-space-ℝ-Banach-Space is-complete-metric-space-ℝ-Banach-Space = pr2 V @@ -77,10 +89,6 @@ module _ complete-metric-space-ℝ-Banach-Space = ( metric-space-ℝ-Banach-Space , is-complete-metric-space-ℝ-Banach-Space) - type-ℝ-Banach-Space : UU l2 - type-ℝ-Banach-Space = - type-Normed-ℝ-Vector-Space normed-vector-space-ℝ-Banach-Space - map-norm-ℝ-Banach-Space : type-ℝ-Banach-Space → ℝ l1 map-norm-ℝ-Banach-Space = map-norm-Normed-ℝ-Vector-Space normed-vector-space-ℝ-Banach-Space @@ -109,6 +117,21 @@ module _ has-limit-cauchy-sequence-ℝ-Banach-Space = has-limit-cauchy-sequence-Complete-Metric-Space ( complete-metric-space-ℝ-Banach-Space) + + dist-ℝ-Banach-Space : (u v : type-ℝ-Banach-Space) → ℝ l1 + dist-ℝ-Banach-Space = + dist-Normed-ℝ-Vector-Space normed-vector-space-ℝ-Banach-Space + + commutative-dist-ℝ-Banach-Space : + (u v : type-ℝ-Banach-Space) → + dist-ℝ-Banach-Space u v = dist-ℝ-Banach-Space v u + commutative-dist-ℝ-Banach-Space = + commutative-dist-Normed-ℝ-Vector-Space normed-vector-space-ℝ-Banach-Space + + diff-ℝ-Banach-Space : + type-ℝ-Banach-Space → type-ℝ-Banach-Space → type-ℝ-Banach-Space + diff-ℝ-Banach-Space = + diff-Normed-ℝ-Vector-Space normed-vector-space-ℝ-Banach-Space ``` ## Properties diff --git a/src/linear-algebra/sums-of-finite-sequences-of-elements-normed-real-vector-spaces.lagda.md b/src/linear-algebra/sums-of-finite-sequences-of-elements-normed-real-vector-spaces.lagda.md new file mode 100644 index 0000000000..e5f32535a6 --- /dev/null +++ b/src/linear-algebra/sums-of-finite-sequences-of-elements-normed-real-vector-spaces.lagda.md @@ -0,0 +1,94 @@ +# Sums of finite sequences of elements in normed real vector spaces + +```agda +module linear-algebra.sums-of-finite-sequences-of-elements-normed-real-vector-spaces where +``` + +
Imports + +```agda +open import elementary-number-theory.natural-numbers + +open import foundation.function-types +open import foundation.universe-levels + +open import group-theory.sums-of-finite-sequences-of-elements-abelian-groups + +open import linear-algebra.normed-real-vector-spaces + +open import lists.finite-sequences + +open import order-theory.large-posets + +open import real-numbers.addition-real-numbers +open import real-numbers.dedekind-real-numbers +open import real-numbers.inequalities-addition-and-subtraction-real-numbers +open import real-numbers.inequality-real-numbers +open import real-numbers.sums-of-finite-sequences-of-real-numbers + +open import univalent-combinatorics.standard-finite-types +``` + +
+ +## Idea + +The +{{#concept "sum" Disambiguation="of a finite sequence of elements of a normed vector space over ℝ" Agda=sum-fin-sequence-type-Normed-ℝ-Vector-Space}} +of a [finite sequence](lists.finite-sequences.md) of elements of a +[normed vector space](linear-algebra.normed-real-vector-spaces.md) over the +[real numbers](real-numbers.dedekind-real-numbers.md) is the +[sum of the sequence](group-theory.sums-of-finite-sequences-of-elements-abelian-groups.md) +in the [abelian group](group-theory.abelian-groups.md) of the vector space under +addition. + +## Definition + +```agda +sum-fin-sequence-type-Normed-ℝ-Vector-Space : + {l1 l2 : Level} (V : Normed-ℝ-Vector-Space l1 l2) (n : ℕ) → + fin-sequence (type-Normed-ℝ-Vector-Space V) n → type-Normed-ℝ-Vector-Space V +sum-fin-sequence-type-Normed-ℝ-Vector-Space V = + sum-fin-sequence-type-Ab (ab-Normed-ℝ-Vector-Space V) +``` + +## Properties + +### The norm of the sum of a finite sequence is at most the sum of the norms of the terms of the sequence + +```agda +module _ + {l1 l2 : Level} + (V : Normed-ℝ-Vector-Space l1 l2) + where + + abstract + triangle-inequality-norm-sum-fin-sequence-type-Normed-ℝ-Vector-Space : + (n : ℕ) (σ : fin-sequence (type-Normed-ℝ-Vector-Space V) n) → + leq-ℝ + ( map-norm-Normed-ℝ-Vector-Space V + ( sum-fin-sequence-type-Normed-ℝ-Vector-Space V n σ)) + ( sum-fin-sequence-ℝ n (map-norm-Normed-ℝ-Vector-Space V ∘ σ)) + triangle-inequality-norm-sum-fin-sequence-type-Normed-ℝ-Vector-Space 0 σ = + leq-eq-ℝ (is-zero-norm-zero-Normed-ℝ-Vector-Space V) + triangle-inequality-norm-sum-fin-sequence-type-Normed-ℝ-Vector-Space + (succ-ℕ n) σ = + let + open inequality-reasoning-Large-Poset ℝ-Large-Poset + in + chain-of-inequalities + map-norm-Normed-ℝ-Vector-Space V + ( sum-fin-sequence-type-Normed-ℝ-Vector-Space V (succ-ℕ n) σ) + ≤ ( map-norm-Normed-ℝ-Vector-Space V + ( sum-fin-sequence-type-Normed-ℝ-Vector-Space V + ( n) + ( σ ∘ inl-Fin n))) +ℝ + ( map-norm-Normed-ℝ-Vector-Space V (σ (neg-one-Fin n))) + by triangular-norm-Normed-ℝ-Vector-Space V _ _ + ≤ sum-fin-sequence-ℝ (succ-ℕ n) (map-norm-Normed-ℝ-Vector-Space V ∘ σ) + by + preserves-leq-right-add-ℝ _ _ _ + ( triangle-inequality-norm-sum-fin-sequence-type-Normed-ℝ-Vector-Space + ( n) + ( σ ∘ inl-Fin n)) +``` diff --git a/src/linear-algebra/sums-of-finite-sequences-of-elements-real-banach-spaces.lagda.md b/src/linear-algebra/sums-of-finite-sequences-of-elements-real-banach-spaces.lagda.md new file mode 100644 index 0000000000..ba3aa4cac9 --- /dev/null +++ b/src/linear-algebra/sums-of-finite-sequences-of-elements-real-banach-spaces.lagda.md @@ -0,0 +1,67 @@ +# Sums of finite sequences of elements in real Banach spaces + +```agda +module linear-algebra.sums-of-finite-sequences-of-elements-real-banach-spaces where +``` + +
Imports + +```agda +open import elementary-number-theory.natural-numbers + +open import foundation.function-types +open import foundation.universe-levels + +open import linear-algebra.real-banach-spaces +open import linear-algebra.sums-of-finite-sequences-of-elements-normed-real-vector-spaces + +open import lists.finite-sequences + +open import real-numbers.inequality-real-numbers +open import real-numbers.sums-of-finite-sequences-of-real-numbers +``` + +
+ +## Idea + +The +{{#concept "sum" Disambiguation="of a finite sequence of elements of a real Banach space" Agda=sum-fin-sequence-type-ℝ-Banach-Space}} +of a [finite sequence](lists.finite-sequences.md) of elements of a +[real Banach space](linear-algebra.real-banach-spaces.md) is the +[sum of the sequence](group-theory.sums-of-finite-sequences-of-elements-abelian-groups.md) +in the [abelian group](group-theory.abelian-groups.md) of the space under +addition. + +## Definition + +```agda +sum-fin-sequence-type-ℝ-Banach-Space : + {l1 l2 : Level} (V : ℝ-Banach-Space l1 l2) → + (n : ℕ) → fin-sequence (type-ℝ-Banach-Space V) n → type-ℝ-Banach-Space V +sum-fin-sequence-type-ℝ-Banach-Space V = + sum-fin-sequence-type-Normed-ℝ-Vector-Space + ( normed-vector-space-ℝ-Banach-Space V) +``` + +## Properties + +### The norm of the sum of a finite sequence is at most the sum of the norms of the terms of the sequence + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + where + + abstract + triangle-inequality-norm-sum-fin-sequence-type-ℝ-Banach-Space : + (n : ℕ) (σ : fin-sequence (type-ℝ-Banach-Space V) n) → + leq-ℝ + ( map-norm-ℝ-Banach-Space V + ( sum-fin-sequence-type-ℝ-Banach-Space V n σ)) + ( sum-fin-sequence-ℝ n (map-norm-ℝ-Banach-Space V ∘ σ)) + triangle-inequality-norm-sum-fin-sequence-type-ℝ-Banach-Space = + triangle-inequality-norm-sum-fin-sequence-type-Normed-ℝ-Vector-Space + ( normed-vector-space-ℝ-Banach-Space V) +``` diff --git a/src/metric-spaces/cauchy-sequences-metric-spaces.lagda.md b/src/metric-spaces/cauchy-sequences-metric-spaces.lagda.md index 71c916ccf9..c1219e7c5d 100644 --- a/src/metric-spaces/cauchy-sequences-metric-spaces.lagda.md +++ b/src/metric-spaces/cauchy-sequences-metric-spaces.lagda.md @@ -9,6 +9,7 @@ module metric-spaces.cauchy-sequences-metric-spaces where
Imports ```agda +open import elementary-number-theory.addition-natural-numbers open import elementary-number-theory.addition-positive-rational-numbers open import elementary-number-theory.addition-rational-numbers open import elementary-number-theory.archimedean-property-positive-rational-numbers @@ -772,6 +773,56 @@ module _ is-cauchy-sequence-pair-cauchy-sequence-Metric-Space) ``` +### To show a sequence `aₙ` is Cauchy, it suffices to have a modulus function such that for any `ε`, `aₙ` and `aₙ₊ₖ` are in an `ε`-neighborhood for sufficiently large `n` + +```agda +module + _ + {l1 l2 : Level} + (X : Metric-Space l1 l2) + (a : sequence-type-Metric-Space X) + (μ : ℚ⁺ → ℕ) + where + + abstract + is-cauchy-modulus-neighborhood-add-sequence-Metric-Space : + ( (ε : ℚ⁺) (n k : ℕ) → leq-ℕ (μ ε) n → + neighborhood-Metric-Space X ε (a (n +ℕ k)) (a n)) → + (ε : ℚ⁺) → + is-cauchy-modulus-sequence-Metric-Space X a ε (μ ε) + is-cauchy-modulus-neighborhood-add-sequence-Metric-Space H ε p q με≤p με≤q = + let + lemma : + (m n : ℕ) → leq-ℕ (μ ε) m → leq-ℕ m n → + neighborhood-Metric-Space X ε (a n) (a m) + lemma m n με≤m m≤n = + let + ( k , k+m=n) = subtraction-leq-ℕ m n m≤n + in + tr + ( λ p → neighborhood-Metric-Space X ε (a p) (a m)) + ( commutative-add-ℕ m k ∙ k+m=n) + ( H ε m k με≤m) + in + rec-coproduct + ( λ p≤q → + symmetric-neighborhood-Metric-Space + ( X) + ( ε) + ( a q) + ( a p) + ( lemma p q με≤p p≤q)) + ( lemma q p με≤q) + ( linear-leq-ℕ p q) + + is-cauchy-sequence-modulus-neighborhood-add-sequence-Metric-Space : + ( (ε : ℚ⁺) (n k : ℕ) → leq-ℕ (μ ε) n → + neighborhood-Metric-Space X ε (a (n +ℕ k)) (a n)) → + is-cauchy-sequence-Metric-Space X a + is-cauchy-sequence-modulus-neighborhood-add-sequence-Metric-Space H ε = + ( μ ε , is-cauchy-modulus-neighborhood-add-sequence-Metric-Space H ε) +``` + ## See also - [Cauchy sequences in complete metric spaces](metric-spaces.cauchy-sequences-complete-metric-spaces.md) diff --git a/src/metric-spaces/limits-of-sequences-metric-spaces.lagda.md b/src/metric-spaces/limits-of-sequences-metric-spaces.lagda.md index 2cfda0f25e..984330b2f5 100644 --- a/src/metric-spaces/limits-of-sequences-metric-spaces.lagda.md +++ b/src/metric-spaces/limits-of-sequences-metric-spaces.lagda.md @@ -31,6 +31,7 @@ open import foundation.universe-levels open import lists.sequences open import metric-spaces.cartesian-products-metric-spaces +open import metric-spaces.isometries-metric-spaces open import metric-spaces.metric-spaces open import metric-spaces.modulated-uniformly-continuous-functions-metric-spaces open import metric-spaces.sequences-metric-spaces @@ -383,6 +384,46 @@ module _ map-is-inhabited short-map-limit-modulus-sequence-Metric-Space ``` +### Isometries between metric spaces preserve limits + +```agda +module _ + {la la' lb lb' : Level} + (A : Metric-Space la la') + (B : Metric-Space lb lb') + (f : isometry-Metric-Space A B) + (u : sequence-type-Metric-Space A) + (lim : type-Metric-Space A) + where + + isometry-map-limit-modulus-sequence-Metric-Space : + limit-modulus-sequence-Metric-Space A u lim → + limit-modulus-sequence-Metric-Space + ( B) + ( map-sequence + ( map-isometry-Metric-Space A B f) + ( u)) + ( map-isometry-Metric-Space A B f lim) + isometry-map-limit-modulus-sequence-Metric-Space = + short-map-limit-modulus-sequence-Metric-Space + ( A) + ( B) + ( short-isometry-Metric-Space A B f) + ( u) + ( lim) + + preserves-limits-sequence-isometry-Metric-Space : + is-limit-sequence-Metric-Space A u lim → + is-limit-sequence-Metric-Space + ( B) + ( map-sequence + ( map-isometry-Metric-Space A B f) + ( u)) + ( map-isometry-Metric-Space A B f lim) + preserves-limits-sequence-isometry-Metric-Space = + map-is-inhabited isometry-map-limit-modulus-sequence-Metric-Space +``` + ### If two sequences have limits in metric spaces, their pairing has a limit in the product space The converse has yet to be proved. diff --git a/src/real-numbers.lagda.md b/src/real-numbers.lagda.md index 8210a60b2e..06ea8bb3f3 100644 --- a/src/real-numbers.lagda.md +++ b/src/real-numbers.lagda.md @@ -107,6 +107,7 @@ open import real-numbers.strict-inequality-nonnegative-real-numbers public open import real-numbers.strict-inequality-positive-real-numbers public open import real-numbers.strict-inequality-real-numbers public open import real-numbers.subsets-real-numbers public +open import real-numbers.sums-of-finite-sequences-of-real-numbers public open import real-numbers.suprema-families-real-numbers public open import real-numbers.totally-bounded-subsets-real-numbers public open import real-numbers.transposition-addition-subtraction-cuts-dedekind-real-numbers public diff --git a/src/real-numbers/cauchy-sequences-real-numbers.lagda.md b/src/real-numbers/cauchy-sequences-real-numbers.lagda.md index a7d81021a9..8a716b033f 100644 --- a/src/real-numbers/cauchy-sequences-real-numbers.lagda.md +++ b/src/real-numbers/cauchy-sequences-real-numbers.lagda.md @@ -9,6 +9,8 @@ module real-numbers.cauchy-sequences-real-numbers where
Imports ```agda +open import foundation.dependent-pair-types +open import foundation.inhabited-types open import foundation.universe-levels open import lists.sequences @@ -20,6 +22,7 @@ open import metric-spaces.cauchy-sequences-metric-spaces open import real-numbers.cauchy-completeness-dedekind-real-numbers open import real-numbers.dedekind-real-numbers open import real-numbers.isometry-addition-real-numbers +open import real-numbers.limits-sequences-real-numbers open import real-numbers.metric-space-of-real-numbers ``` @@ -75,3 +78,20 @@ add-cauchy-sequence-ℝ {l1} {l2} u v = ( u) ( v)) ``` + +### If a sequence has a limit, there exists a modulus making it a Cauchy sequence + +```agda +abstract + exists-cauchy-modulus-has-limit-sequence-ℝ : + {l : Level} (σ : sequence (ℝ l)) → + has-limit-sequence-ℝ σ → + is-inhabited (is-cauchy-sequence-ℝ σ) + exists-cauchy-modulus-has-limit-sequence-ℝ {l} σ (lim , is-lim) = + map-is-inhabited + ( is-cauchy-has-limit-modulus-sequence-Metric-Space + ( metric-space-ℝ l) + ( σ) + ( lim)) + ( is-lim) +``` diff --git a/src/real-numbers/distance-real-numbers.lagda.md b/src/real-numbers/distance-real-numbers.lagda.md index 9ca6388089..e21335fbd5 100644 --- a/src/real-numbers/distance-real-numbers.lagda.md +++ b/src/real-numbers/distance-real-numbers.lagda.md @@ -257,6 +257,16 @@ abstract ( leq-transpose-right-add-ℝ _ _ _ y≤z+x) ``` +### The difference of two real numbers is at most their distance + +```agda +abstract + leq-diff-dist-ℝ : + {l1 l2 : Level} (x : ℝ l1) (y : ℝ l2) → + leq-ℝ (x -ℝ y) (dist-ℝ x y) + leq-diff-dist-ℝ _ _ = leq-abs-ℝ _ +``` + ### Addition preserves distance between real numbers ```agda diff --git a/src/real-numbers/limits-sequences-real-numbers.lagda.md b/src/real-numbers/limits-sequences-real-numbers.lagda.md index 2aaf9e43a0..8b183862a6 100644 --- a/src/real-numbers/limits-sequences-real-numbers.lagda.md +++ b/src/real-numbers/limits-sequences-real-numbers.lagda.md @@ -44,6 +44,9 @@ is-limit-prop-sequence-ℝ {l} = is-limit-sequence-ℝ : {l : Level} → sequence (ℝ l) → ℝ l → UU l is-limit-sequence-ℝ {l} = is-limit-sequence-Metric-Space (metric-space-ℝ l) + +has-limit-sequence-ℝ : {l : Level} → sequence (ℝ l) → UU (lsuc l) +has-limit-sequence-ℝ {l} = has-limit-sequence-Metric-Space (metric-space-ℝ l) ``` ## Properties diff --git a/src/real-numbers/sums-of-finite-sequences-of-real-numbers.lagda.md b/src/real-numbers/sums-of-finite-sequences-of-real-numbers.lagda.md new file mode 100644 index 0000000000..1e26b21c1d --- /dev/null +++ b/src/real-numbers/sums-of-finite-sequences-of-real-numbers.lagda.md @@ -0,0 +1,37 @@ +# Sums of finite sequences of real numbers + +```agda +module real-numbers.sums-of-finite-sequences-of-real-numbers where +``` + +
Imports + +```agda +open import elementary-number-theory.natural-numbers + +open import foundation.universe-levels + +open import group-theory.sums-of-finite-sequences-of-elements-abelian-groups + +open import lists.finite-sequences + +open import real-numbers.dedekind-real-numbers +open import real-numbers.large-additive-group-of-real-numbers +``` + +
+ +## Idea + +The +{{#concept "sum operation" Disambiguation="of a finite sequence in ℝ" WD="sum" WDID=Q218005 Agda=sum-fin-sequence-ℝ}} +extends the operation of [addition](real-numbers.addition-real-numbers.md) on +the [real numbers](real-numbers.dedekind-real-numbers.md) to any +[finite sequence](lists.finite-sequences.md) of real numbers. + +## Definition + +```agda +sum-fin-sequence-ℝ : {l : Level} (n : ℕ) → fin-sequence (ℝ l) n → ℝ l +sum-fin-sequence-ℝ {l} = sum-fin-sequence-type-Ab (ab-add-ℝ l) +```