diff --git a/src/analysis.lagda.md b/src/analysis.lagda.md index 8790cf7fd6..48e6e3c438 100644 --- a/src/analysis.lagda.md +++ b/src/analysis.lagda.md @@ -3,7 +3,10 @@ ```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.comparison-test-series-real-numbers public open import analysis.complete-metric-abelian-groups public open import analysis.convergent-series-complete-metric-abelian-groups public open import analysis.convergent-series-metric-abelian-groups public @@ -12,6 +15,8 @@ open import analysis.convergent-series-real-numbers public open import analysis.derivatives-of-real-functions-on-proper-closed-intervals public open import analysis.metric-abelian-groups public open import analysis.metric-abelian-groups-normed-real-vector-spaces public +open import analysis.ratio-test-series-real-banach-spaces public +open import analysis.ratio-test-series-real-numbers public open import analysis.series-complete-metric-abelian-groups public open import analysis.series-metric-abelian-groups public open import analysis.series-real-banach-spaces 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/comparison-test-series-real-numbers.lagda.md b/src/analysis/comparison-test-series-real-numbers.lagda.md new file mode 100644 index 0000000000..dbc9581cb5 --- /dev/null +++ b/src/analysis/comparison-test-series-real-numbers.lagda.md @@ -0,0 +1,199 @@ +# Comparison test for series in the real numbers + +```agda +module analysis.comparison-test-series-real-numbers where +``` + +
Imports + +```agda +open import analysis.convergent-series-real-numbers +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 foundation.binary-transport +open import foundation.conjunction +open import foundation.dependent-pair-types +open import foundation.existential-quantification +open import foundation.function-types +open import foundation.identity-types +open import foundation.propositional-truncations +open import foundation.propositions +open import foundation.universe-levels + +open import metric-spaces.cauchy-sequences-metric-spaces + +open import order-theory.large-posets + +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.metric-space-of-real-numbers +open import real-numbers.negation-real-numbers +open import real-numbers.nonnegative-real-numbers +open import real-numbers.rational-real-numbers +open import real-numbers.sums-of-finite-sequences-of-real-numbers + +open import univalent-combinatorics.standard-finite-types +``` + +
+ +## Idea + +A [series](analysis.series-real-numbers.md) `∑ aₙ` of +[nonnegative](real-numbers.nonnegative-real-numbers.md) +[real numbers](real-numbers.dedekind-real-numbers.md) +[converges](analysis.convergent-series-real-numbers.md) if there +[exists](foundation.existential-quantification.md) a convergent series `∑ bₙ` +such that `aₙ ≤ bₙ` for all `n`. + +## Definition + +```agda +module _ + {l1 : Level} + (l2 : Level) + (σ : series-ℝ l1) + where + + comparison-test-prop-series-ℝ : Prop (l1 ⊔ lsuc l2) + comparison-test-prop-series-ℝ = + ( is-nonnegative-prop-series-ℝ σ) ∧ + ( ∃ + ( convergent-series-ℝ l2) + ( λ τ → + Π-Prop + ( ℕ) + ( λ n → + leq-prop-ℝ (term-series-ℝ σ n) (term-convergent-series-ℝ τ n)))) + + comparison-test-series-ℝ : UU (l1 ⊔ lsuc l2) + comparison-test-series-ℝ = + type-Prop comparison-test-prop-series-ℝ +``` + +## Properties + +### The comparison test implies convergence + +```agda +module _ + {l1 l2 : Level} + (σ : series-ℝ l1) + (τ : convergent-series-ℝ l2) + where + + abstract + is-convergent-is-nonnegative-is-bounded-by-convergent-series-ℝ : + ((n : ℕ) → is-nonnegative-ℝ (term-series-ℝ σ n)) → + ((n : ℕ) → leq-ℝ (term-series-ℝ σ n) (term-convergent-series-ℝ τ n)) → + is-convergent-series-ℝ σ + is-convergent-is-nonnegative-is-bounded-by-convergent-series-ℝ 0≤σₙ σₙ≤τₙ = + let + open inequality-reasoning-Large-Poset ℝ-Large-Poset + open do-syntax-trunc-Prop (is-convergent-prop-series-ℝ σ) + in do + lim-modulus-τ ← is-sum-sum-convergent-series-ℝ τ + let + cauchy-mod-partial-sum-τ = + is-cauchy-has-limit-modulus-sequence-Metric-Space + ( metric-space-ℝ l2) + ( partial-sum-convergent-series-ℝ τ) + ( sum-convergent-series-ℝ τ) + ( lim-modulus-τ) + μ = pr1 ∘ cauchy-mod-partial-sum-τ + is-mod-μ = pr2 ∘ cauchy-mod-partial-sum-τ + is-mod'-μ ε n k με≤n = + neighborhood-dist-ℝ ε _ _ + ( leq-dist-leq-diff-ℝ _ _ _ + ( chain-of-inequalities + partial-sum-series-ℝ σ (n +ℕ k) -ℝ partial-sum-series-ℝ σ n + ≤ partial-sum-series-ℝ (drop-series-ℝ n σ) k + by leq-eq-ℝ (inv (partial-sum-drop-series-ℝ n σ k)) + ≤ partial-sum-series-ℝ + ( drop-series-ℝ n (series-convergent-series-ℝ τ)) + ( k) + by + leq-sum-fin-sequence-ℝ k _ _ + ( λ m → σₙ≤τₙ (n +ℕ nat-Fin k m)) + ≤ ( partial-sum-convergent-series-ℝ τ (n +ℕ k)) -ℝ + ( partial-sum-convergent-series-ℝ τ n) + by + leq-eq-ℝ + ( partial-sum-drop-series-ℝ + ( n) + ( series-convergent-series-ℝ τ) + ( k)) + ≤ dist-ℝ + ( partial-sum-convergent-series-ℝ τ (n +ℕ k)) + ( partial-sum-convergent-series-ℝ τ n) + by leq-diff-dist-ℝ _ _ + ≤ real-ℚ⁺ ε + by + leq-dist-neighborhood-ℝ ε _ _ + ( is-mod-μ + ( ε) + ( n +ℕ k) + ( n) + ( transitive-leq-ℕ + ( μ ε) + ( n) + ( n +ℕ k) + ( leq-add-ℕ n k) + ( με≤n)) + ( με≤n))) + ( transitive-leq-ℝ + ( partial-sum-series-ℝ σ n -ℝ partial-sum-series-ℝ σ (n +ℕ k)) + ( zero-ℝ) + ( real-ℚ⁺ ε) + ( is-nonnegative-real-ℝ⁰⁺ (nonnegative-real-ℚ⁺ ε)) + ( binary-tr + ( leq-ℝ) + ( distributive-neg-diff-ℝ _ _) + ( neg-zero-ℝ) + ( neg-leq-ℝ + ( is-nonnegative-diff-leq-ℝ + ( is-monotonic-partial-sum-is-nonnegative-term-series-ℝ + ( σ) + ( 0≤σₙ) + ( n) + ( n +ℕ k) + ( leq-add-ℕ n k))))))) + is-convergent-is-cauchy-sequence-partial-sum-series-ℝ + σ + ( λ ε → + ( μ ε , + is-cauchy-modulus-is-cauchy-modulus-sequence-Metric-Space' + ( metric-space-ℝ l1) + ( partial-sum-series-ℝ σ) + ( ε) + ( μ ε) + ( is-mod'-μ ε))) + +module _ + {l1 l2 : Level} + (σ : series-ℝ l1) + where + + is-convergent-comparison-test-series-ℝ : + {l2 : Level} → comparison-test-series-ℝ l2 σ → is-convergent-series-ℝ σ + is-convergent-comparison-test-series-ℝ (0≤σₙ , ∃τ) = + rec-trunc-Prop + ( is-convergent-prop-series-ℝ σ) + ( λ (τ , σₙ≤τₙ) → + is-convergent-is-nonnegative-is-bounded-by-convergent-series-ℝ + ( σ) + ( τ) + ( 0≤σₙ) + ( σₙ≤τₙ)) + ( ∃τ) +``` + +## External links + +- [Direct comparison test](https://en.wikipedia.org/wiki/Direct_comparison_test) + 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-metric-abelian-groups.lagda.md b/src/analysis/convergent-series-metric-abelian-groups.lagda.md index d78cf2b8bd..30673b9085 100644 --- a/src/analysis/convergent-series-metric-abelian-groups.lagda.md +++ b/src/analysis/convergent-series-metric-abelian-groups.lagda.md @@ -10,9 +10,19 @@ module analysis.convergent-series-metric-abelian-groups where open import analysis.metric-abelian-groups open import analysis.series-metric-abelian-groups +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 foundation.action-on-identifications-functions +open import foundation.binary-transport open import foundation.dependent-pair-types +open import foundation.functoriality-propositional-truncation +open import foundation.identity-types +open import foundation.logical-equivalences open import foundation.propositions open import foundation.subtypes +open import foundation.transport-along-identifications open import foundation.universe-levels open import lists.sequences @@ -79,7 +89,7 @@ module _ 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 +### The partial sums of a convergent series have a limit, the sum of the series ```agda module _ @@ -111,3 +121,79 @@ module _ ( partial-sum-convergent-series-Metric-Ab G σ) ( has-limit-partial-sum-convergent-series-Metric-Ab) ``` + +### A series converges if and only if it converges after dropping a finite number of terms + +```agda +module _ + {l1 l2 : Level} + {G : Metric-Ab l1 l2} + (σ : series-Metric-Ab G) + (k : ℕ) + where + + is-convergent-is-convergent-drop-series-ℝ : + is-convergent-series-Metric-Ab (drop-series-Metric-Ab k σ) → + is-convergent-series-Metric-Ab σ + is-convergent-is-convergent-drop-series-ℝ (lim-drop , is-lim-drop) = + ( add-Metric-Ab G (partial-sum-series-Metric-Ab σ k) lim-drop , + map-trunc-Prop + ( λ (μ , is-mod-μ) → + ( ( λ ε → μ ε +ℕ k) , + ( λ ε n με+k≤n → + let + (l , l+k=n) = + subtraction-leq-ℕ + ( k) + ( n) + ( transitive-leq-ℕ + ( k) + ( μ ε +ℕ k) + ( n) + ( με+k≤n) + ( leq-add-ℕ' k (μ ε))) + in + tr + ( λ x → neighborhood-Metric-Ab G ε x _) + ( equational-reasoning + add-Metric-Ab G + ( partial-sum-series-Metric-Ab σ k) + ( partial-sum-series-Metric-Ab + ( drop-series-Metric-Ab k σ) + ( l)) + = + add-Metric-Ab G + ( partial-sum-series-Metric-Ab σ k) + ( diff-Metric-Ab G + ( partial-sum-series-Metric-Ab σ (k +ℕ l)) + ( partial-sum-series-Metric-Ab σ k)) + by + ap-add-Metric-Ab G + ( refl) + ( partial-sum-drop-series-Metric-Ab k σ l) + = partial-sum-series-Metric-Ab σ (k +ℕ l) + by is-identity-right-conjugation-Metric-Ab G _ _ + = partial-sum-series-Metric-Ab σ n + by + ap + ( partial-sum-series-Metric-Ab σ) + ( commutative-add-ℕ k l ∙ l+k=n)) + ( forward-implication + ( is-isometry-add-Metric-Ab + ( G) + ( partial-sum-series-Metric-Ab σ k) + ( ε) + ( partial-sum-series-Metric-Ab + ( drop-series-Metric-Ab k σ) + ( l)) + ( lim-drop)) + ( is-mod-μ + ( ε) + ( l) + ( reflects-leq-left-add-ℕ + ( k) + ( μ ε) + ( l) + ( inv-tr (leq-ℕ (μ ε +ℕ k)) l+k=n με+k≤n))))))) + ( is-lim-drop)) +``` 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..f7d5effe76 100644 --- a/src/analysis/convergent-series-real-numbers.lagda.md +++ b/src/analysis/convergent-series-real-numbers.lagda.md @@ -11,9 +11,13 @@ open import analysis.convergent-series-complete-metric-abelian-groups open import analysis.convergent-series-metric-abelian-groups open import analysis.series-real-numbers +open import foundation.dependent-pair-types open import foundation.propositions +open import foundation.subtypes open import foundation.universe-levels +open import lists.sequences + open import real-numbers.cauchy-sequences-real-numbers open import real-numbers.dedekind-real-numbers open import real-numbers.metric-additive-group-of-real-numbers @@ -48,6 +52,31 @@ 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}) + +module _ + {l : Level} + (σ : convergent-series-ℝ l) + where + + series-convergent-series-ℝ : series-ℝ l + series-convergent-series-ℝ = pr1 σ + + term-convergent-series-ℝ : sequence (ℝ l) + term-convergent-series-ℝ = term-series-ℝ series-convergent-series-ℝ + + sum-convergent-series-ℝ : ℝ l + sum-convergent-series-ℝ = pr1 (pr2 σ) + + is-sum-sum-convergent-series-ℝ : + is-sum-series-ℝ series-convergent-series-ℝ sum-convergent-series-ℝ + is-sum-sum-convergent-series-ℝ = pr2 (pr2 σ) + + partial-sum-convergent-series-ℝ : sequence (ℝ l) + partial-sum-convergent-series-ℝ = + partial-sum-series-ℝ series-convergent-series-ℝ ``` ## Properties diff --git a/src/analysis/metric-abelian-groups.lagda.md b/src/analysis/metric-abelian-groups.lagda.md index fffb958a61..becf60fe83 100644 --- a/src/analysis/metric-abelian-groups.lagda.md +++ b/src/analysis/metric-abelian-groups.lagda.md @@ -113,6 +113,11 @@ module _ commutative-add-Metric-Ab : (x y : type-Metric-Ab MG) → add-Metric-Ab x y = add-Metric-Ab y x commutative-add-Metric-Ab = commutative-add-Ab (ab-Metric-Ab MG) + + is-identity-right-conjugation-Metric-Ab : + (x y : type-Metric-Ab MG) → add-Metric-Ab x (diff-Metric-Ab y x) = y + is-identity-right-conjugation-Metric-Ab = + is-identity-right-conjugation-Ab (ab-Metric-Ab MG) ``` ### Metric properties of metric abelian groups diff --git a/src/analysis/ratio-test-series-real-banach-spaces.lagda.md b/src/analysis/ratio-test-series-real-banach-spaces.lagda.md new file mode 100644 index 0000000000..53ccad85e8 --- /dev/null +++ b/src/analysis/ratio-test-series-real-banach-spaces.lagda.md @@ -0,0 +1,115 @@ +# The ratio test for series in real Banach spaces + +```agda +module analysis.ratio-test-series-real-banach-spaces where +``` + +
Imports + +```agda +open import analysis.absolute-convergence-series-real-banach-spaces +open import analysis.convergent-series-real-banach-spaces +open import analysis.ratio-test-series-real-numbers +open import analysis.series-real-banach-spaces + +open import elementary-number-theory.natural-numbers + +open import foundation.binary-transport +open import foundation.conjunction +open import foundation.dependent-pair-types +open import foundation.existential-quantification +open import foundation.identity-types +open import foundation.propositions +open import foundation.universe-levels + +open import linear-algebra.real-banach-spaces + +open import logic.functoriality-existential-quantification + +open import real-numbers.absolute-value-real-numbers +open import real-numbers.inequality-real-numbers +open import real-numbers.multiplication-real-numbers +open import real-numbers.nonnegative-real-numbers +open import real-numbers.strict-inequality-nonnegative-real-numbers +``` + +
+ +## Idea + +To prove that a [series](analysis.series-real-banach-spaces.md) `∑ aₙ` in a +[real Banach space](linear-algebra.real-banach-spaces.md) +[converges](analysis.series-real-numbers.md), it is sufficient to show that +[there exists](foundation.existential-quantification.md) a +[nonnegative](real-numbers.nonnegative-real-numbers.md) real number `r` +[less than](real-numbers.strict-inequality-real-numbers.md) 1 such that for all +`n`, `∥aₙ₊₁∥ ≤ r∥aₙ∥`. + +## Definition + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + (σ : series-ℝ-Banach-Space V) + where + + ratio-test-prop-series-ℝ-Banach-Space : Prop (lsuc l1) + ratio-test-prop-series-ℝ-Banach-Space = + ∃ ( ℝ⁰⁺ l1) + ( λ r → + le-prop-ℝ⁰⁺ r one-ℝ⁰⁺ ∧ + Π-Prop + ( ℕ) + ( λ n → + leq-prop-ℝ + ( map-norm-ℝ-Banach-Space V + ( term-series-ℝ-Banach-Space V σ (succ-ℕ n))) + ( ( real-ℝ⁰⁺ r) *ℝ + ( map-norm-ℝ-Banach-Space V + ( term-series-ℝ-Banach-Space V σ n))))) + + ratio-test-series-ℝ-Banach-Space : UU (lsuc l1) + ratio-test-series-ℝ-Banach-Space = + type-Prop ratio-test-prop-series-ℝ-Banach-Space +``` + +## Properties + +### The ratio test implies convergence + +```agda +module _ + {l1 l2 : Level} + (V : ℝ-Banach-Space l1 l2) + (σ : series-ℝ-Banach-Space V) + where + + abstract + is-convergent-ratio-test-series-ℝ-Banach-Space : + ratio-test-series-ℝ-Banach-Space V σ → + is-convergent-series-ℝ-Banach-Space V σ + is-convergent-ratio-test-series-ℝ-Banach-Space H = + is-convergent-is-absolutely-convergent-series-ℝ-Banach-Space + ( V) + ( σ) + ( is-convergent-ratio-test-series-ℝ + ( map-norm-series-ℝ-Banach-Space V σ) + ( map-tot-exists + ( λ r (r<1 , K) → + ( r<1 , + λ n → + binary-tr + ( leq-ℝ) + ( inv (abs-real-ℝ⁰⁺ (nonnegative-norm-ℝ-Banach-Space V _))) + ( ap-mul-ℝ + ( refl) + ( inv + ( abs-real-ℝ⁰⁺ (nonnegative-norm-ℝ-Banach-Space V _)))) + ( K n))) + ( H))) +``` + +## See also + +- [The ratio test for series of real numbers](analysis.ratio-test-series-real-numbers.md) diff --git a/src/analysis/ratio-test-series-real-numbers.lagda.md b/src/analysis/ratio-test-series-real-numbers.lagda.md new file mode 100644 index 0000000000..13d7ff672b --- /dev/null +++ b/src/analysis/ratio-test-series-real-numbers.lagda.md @@ -0,0 +1,142 @@ +# The ratio test for series in the real numbers + +```agda +module analysis.ratio-test-series-real-numbers where +``` + +
Imports + +```agda +open import analysis.absolute-convergence-series-real-numbers +open import analysis.comparison-test-series-real-numbers +open import analysis.convergent-series-real-numbers +open import analysis.series-real-numbers + +open import elementary-number-theory.inequality-natural-numbers +open import elementary-number-theory.natural-numbers + +open import foundation.cartesian-product-types +open import foundation.conjunction +open import foundation.dependent-pair-types +open import foundation.existential-quantification +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 order-theory.large-posets + +open import real-numbers.absolute-value-real-numbers +open import real-numbers.geometric-sequences-real-numbers +open import real-numbers.inequality-real-numbers +open import real-numbers.multiplication-nonnegative-real-numbers +open import real-numbers.multiplication-real-numbers +open import real-numbers.nonnegative-real-numbers +open import real-numbers.powers-real-numbers +open import real-numbers.rational-real-numbers +open import real-numbers.strict-inequality-nonnegative-real-numbers +open import real-numbers.strict-inequality-real-numbers +``` + +
+ +## Idea + +To prove that a [series](analysis.series-real-numbers.md) `∑ aₙ` of +[real numbers](real-numbers.dedekind-real-numbers.md) +[converges](analysis.convergent-series-real-numbers.md), it is sufficient to +show that [there exists](foundation.existential-quantification.md) a +[nonnegative](real-numbers.nonnegative-real-numbers.md) real number `r` +[less than](real-numbers.strict-inequality-real-numbers.md) 1 such that for all +`n`, `|aₙ₊₁| ≤ r|aₙ|`. + +## Definition + +```agda +module _ + {l : Level} + (σ : series-ℝ l) + where + + ratio-test-prop-series-ℝ : Prop (lsuc l) + ratio-test-prop-series-ℝ = + ∃ ( ℝ⁰⁺ l) + ( λ r → + le-prop-ℝ⁰⁺ r one-ℝ⁰⁺ ∧ + Π-Prop + ( ℕ) + ( λ n → + ( leq-prop-ℝ + ( abs-ℝ (term-series-ℝ σ (succ-ℕ n))) + ( real-ℝ⁰⁺ r *ℝ abs-ℝ (term-series-ℝ σ n))))) + + ratio-test-series-ℝ : UU (lsuc l) + ratio-test-series-ℝ = type-Prop ratio-test-prop-series-ℝ +``` + +## Properties + +### The ratio test implies convergence + +```agda +module _ + {l : Level} + (σ : series-ℝ l) + where + + abstract + is-convergent-ratio-test-series-ℝ : + ratio-test-series-ℝ σ → is-convergent-series-ℝ σ + is-convergent-ratio-test-series-ℝ H = + let + open inequality-reasoning-Large-Poset ℝ-Large-Poset + open do-syntax-trunc-Prop (is-convergent-prop-series-ℝ σ) + in do + (r⁰⁺@(r , 0≤r) , r<1 , K) ← H + let |σ₀| = abs-ℝ (term-series-ℝ σ 0) + is-convergent-is-absolutely-convergent-series-ℝ + ( σ) + ( is-convergent-is-nonnegative-is-bounded-by-convergent-series-ℝ + ( map-abs-series-ℝ σ) + ( convergent-standard-geometric-series-ℝ + ( |σ₀|) + ( r) + ( inv-tr (λ x → le-ℝ x one-ℝ) (abs-real-ℝ⁰⁺ r⁰⁺) r<1)) + ( λ _ → is-nonnegative-abs-ℝ _) + ( ind-ℕ + ( refl-leq-ℝ _) + ( λ n |σₙ|≤arⁿ → + chain-of-inequalities + abs-ℝ (term-series-ℝ σ (succ-ℕ n)) + ≤ r *ℝ abs-ℝ (term-series-ℝ σ n) + by K n + ≤ r *ℝ seq-standard-geometric-sequence-ℝ |σ₀| r n + by preserves-leq-left-mul-ℝ⁰⁺ r⁰⁺ |σₙ|≤arⁿ + ≤ r *ℝ (|σ₀| *ℝ power-ℝ n r) + by + leq-eq-ℝ + ( ap-mul-ℝ + ( refl) + ( compute-standard-geometric-sequence-ℝ |σ₀| r n)) + ≤ |σ₀| *ℝ (r *ℝ power-ℝ n r) + by leq-eq-ℝ (left-swap-mul-ℝ _ _ _) + ≤ |σ₀| *ℝ power-ℝ (succ-ℕ n) r + by leq-eq-ℝ (ap-mul-ℝ refl (inv (power-succ-ℝ' n r))) + ≤ seq-standard-geometric-sequence-ℝ |σ₀| r (succ-ℕ n) + by + leq-eq-ℝ + ( inv + ( compute-standard-geometric-sequence-ℝ + ( |σ₀|) + ( r) + ( succ-ℕ n)))))) +``` + +## See also + +- [The ratio test for series in real Banach spaces](analysis.ratio-test-series-real-banach-spaces.md) + +## External links + +- [Ratio test](https://en.wikipedia.org/wiki/Ratio_test) on Wikipedia 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..3ad7b5b263 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 @@ -27,6 +30,7 @@ open import metric-spaces.metric-spaces open import real-numbers.cauchy-completeness-dedekind-real-numbers open import real-numbers.dedekind-real-numbers +open import real-numbers.nonnegative-real-numbers ```
@@ -69,6 +73,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,14 +90,14 @@ 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 + nonnegative-norm-ℝ-Banach-Space : type-ℝ-Banach-Space → ℝ⁰⁺ l1 + nonnegative-norm-ℝ-Banach-Space = + nonnegative-norm-Normed-ℝ-Vector-Space normed-vector-space-ℝ-Banach-Space + cauchy-sequence-ℝ-Banach-Space : UU (l1 ⊔ l2) cauchy-sequence-ℝ-Banach-Space = cauchy-sequence-Metric-Space metric-space-ℝ-Banach-Space @@ -109,6 +122,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..adaa01d373 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 @@ -85,6 +86,31 @@ module _ (m k : ℕ) → leq-ℕ N m → leq-ℕ N k → neighborhood-Metric-Space M ε (x m) (x k) + is-cauchy-modulus-sequence-Metric-Space' : ℚ⁺ → ℕ → UU l2 + is-cauchy-modulus-sequence-Metric-Space' ε N = + (m k : ℕ) → leq-ℕ N m → + neighborhood-Metric-Space M ε (x (m +ℕ k)) (x m) + + is-cauchy-modulus-is-cauchy-modulus-sequence-Metric-Space' : + (ε : ℚ⁺) (N : ℕ) → is-cauchy-modulus-sequence-Metric-Space' ε N → + is-cauchy-modulus-sequence-Metric-Space ε N + is-cauchy-modulus-is-cauchy-modulus-sequence-Metric-Space' ε N H m k N≤m N≤k = + let + case a b N≤a a≤b = + let + ( c , c+a=b) = subtraction-leq-ℕ a b a≤b + in + tr + ( λ d → neighborhood-Metric-Space M ε (x d) (x a)) + ( commutative-add-ℕ a c ∙ c+a=b) + ( H a c N≤a) + in + rec-coproduct + ( λ m≤k → + symmetric-neighborhood-Metric-Space M ε _ _ (case m k N≤m m≤k)) + ( λ k≤m → case k m N≤k k≤m) + ( linear-leq-ℕ m k) + is-cauchy-sequence-Metric-Space : UU l2 is-cauchy-sequence-Metric-Space = (ε : ℚ⁺) → Σ ℕ (is-cauchy-modulus-sequence-Metric-Space ε) @@ -772,6 +798,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/absolute-value-real-numbers.lagda.md b/src/real-numbers/absolute-value-real-numbers.lagda.md index 29a635cae2..fc56fd9d72 100644 --- a/src/real-numbers/absolute-value-real-numbers.lagda.md +++ b/src/real-numbers/absolute-value-real-numbers.lagda.md @@ -302,6 +302,20 @@ module _ leq-abs-leq-leq-neg-ℝ = leq-max-leq-leq-ℝ x (neg-ℝ x) y ``` +### If `x < y` and `-x < y`, `|x| < y` + +```agda +module _ + {l1 l2 : Level} {x : ℝ l1} {y : ℝ l2} + where + + abstract opaque + unfolding abs-ℝ + + le-abs-le-le-neg-ℝ : le-ℝ x y → le-ℝ (neg-ℝ x) y → le-ℝ (abs-ℝ x) y + le-abs-le-le-neg-ℝ = le-max-le-le-ℝ +``` + ### Triangle inequality ```agda 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/geometric-sequences-real-numbers.lagda.md b/src/real-numbers/geometric-sequences-real-numbers.lagda.md index f5625e7f4e..dfc8de55e8 100644 --- a/src/real-numbers/geometric-sequences-real-numbers.lagda.md +++ b/src/real-numbers/geometric-sequences-real-numbers.lagda.md @@ -18,6 +18,7 @@ open import elementary-number-theory.natural-numbers 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.identity-types open import foundation.transport-along-identifications @@ -242,6 +243,13 @@ module _ ( λ n → power-ℝ n r) ( raise-ℝ l zero-ℝ) ( is-zero-lim-power-le-one-abs-ℝ r |r|<1)) + + convergent-standard-geometric-series-ℝ : + le-ℝ (abs-ℝ r) one-ℝ → convergent-series-ℝ l + convergent-standard-geometric-series-ℝ |r|<1 = + ( standard-geometric-series-ℝ , + a *ℝ real-inv-nonzero-ℝ (nonzero-diff-le-abs-ℝ |r|<1) , + compute-sum-standard-geometric-series-ℝ |r|<1) ``` ## References 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..8da6c6955b --- /dev/null +++ b/src/real-numbers/sums-of-finite-sequences-of-real-numbers.lagda.md @@ -0,0 +1,69 @@ +# 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.function-types +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.inequalities-addition-and-subtraction-real-numbers +open import real-numbers.inequality-real-numbers +open import real-numbers.large-additive-group-of-real-numbers +open import real-numbers.raising-universe-levels-real-numbers +open import real-numbers.rational-real-numbers +open import real-numbers.similarity-real-numbers + +open import univalent-combinatorics.standard-finite-types +``` + +
+ +## 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) +``` + +## Properties + +### If `aₙ ≤ bₙ` for all `n`, then `∑ aₙ ≤ ∑ bₙ` + +```agda +abstract + leq-sum-fin-sequence-ℝ : + {l1 l2 : Level} (n : ℕ) → + (a : fin-sequence (ℝ l1) n) (b : fin-sequence (ℝ l2) n) → + ((k : Fin n) → leq-ℝ (a k) (b k)) → + leq-ℝ (sum-fin-sequence-ℝ n a) (sum-fin-sequence-ℝ n b) + leq-sum-fin-sequence-ℝ {l1} {l2} 0 _ _ _ = + leq-sim-ℝ + ( transitive-sim-ℝ _ _ _ (sim-raise-ℝ l2 zero-ℝ) (sim-raise-ℝ' l1 zero-ℝ)) + leq-sum-fin-sequence-ℝ (succ-ℕ n) a b H = + preserves-leq-add-ℝ + ( leq-sum-fin-sequence-ℝ + ( n) + ( a ∘ inl-Fin n) + ( b ∘ inl-Fin n) + ( H ∘ inl-Fin n)) + ( H (neg-one-Fin n)) +```