diff --git a/src/analysis.lagda.md b/src/analysis.lagda.md index 0899030d3c..d74a8b9016 100644 --- a/src/analysis.lagda.md +++ b/src/analysis.lagda.md @@ -4,6 +4,7 @@ module analysis where open import analysis.absolute-convergence-series-real-numbers 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 +13,7 @@ open import analysis.derivatives-of-real-functions-on-proper-closed-intervals pu open import analysis.metric-abelian-groups public open import analysis.metric-abelian-groups-normed-real-vector-spaces public open import analysis.nonnegative-series-real-numbers 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-numbers public diff --git a/src/analysis/absolute-convergence-series-real-numbers.lagda.md b/src/analysis/absolute-convergence-series-real-numbers.lagda.md index b1bbc8dd2a..bba6147836 100644 --- a/src/analysis/absolute-convergence-series-real-numbers.lagda.md +++ b/src/analysis/absolute-convergence-series-real-numbers.lagda.md @@ -40,12 +40,9 @@ module _ (σ : series-ℝ l) where - map-abs-series-ℝ : series-ℝ l - map-abs-series-ℝ = series-terms-ℝ (abs-ℝ ∘ term-series-ℝ σ) - is-absolutely-convergent-prop-series-ℝ : Prop (lsuc l) is-absolutely-convergent-prop-series-ℝ = - is-convergent-prop-series-ℝ map-abs-series-ℝ + is-convergent-prop-series-ℝ (map-abs-series-ℝ σ) is-absolutely-convergent-series-ℝ : UU (lsuc l) is-absolutely-convergent-series-ℝ = 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..6b148b94cb --- /dev/null +++ b/src/analysis/comparison-test-series-real-numbers.lagda.md @@ -0,0 +1,202 @@ +# 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.nonnegative-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`. This is the +{{#concept "comparison test" Disambiguation="for series in the real numbers" Agda=comparison-test-series-ℝ Agda=is-convergent-comparison-test-series-ℝ}} +for series in the real numbers. + +## 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-increasing-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-metric-abelian-groups.lagda.md b/src/analysis/convergent-series-metric-abelian-groups.lagda.md index d78cf2b8bd..723e6e82ca 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 converge to 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 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-numbers.lagda.md b/src/analysis/convergent-series-real-numbers.lagda.md index 1226c36539..f7d5effe76 100644 --- a/src/analysis/convergent-series-real-numbers.lagda.md +++ b/src/analysis/convergent-series-real-numbers.lagda.md @@ -11,10 +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 @@ -52,6 +55,28 @@ module _ 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-numbers.lagda.md b/src/analysis/ratio-test-series-real-numbers.lagda.md new file mode 100644 index 0000000000..55588f5c05 --- /dev/null +++ b/src/analysis/ratio-test-series-real-numbers.lagda.md @@ -0,0 +1,144 @@ +# 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ₙ|`. This condition is known as the +{{#concept "ratio test" Disambiguation="for series in the real numbers" WDID=Q165638 WD="ratio test" Agda=ratio-test-series-ℝ Agda=is-convergent-ratio-test-series-ℝ}} +for series in the real numbers. + +## 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](functional-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-numbers.lagda.md b/src/analysis/series-real-numbers.lagda.md index ee553fef4d..65d916d7d8 100644 --- a/src/analysis/series-real-numbers.lagda.md +++ b/src/analysis/series-real-numbers.lagda.md @@ -21,10 +21,15 @@ 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 ``` @@ -54,6 +59,18 @@ partial-sum-series-ℝ {l} = partial-sum-series-Metric-Ab ## Properties +### 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 diff --git a/src/functional-analysis.lagda.md b/src/functional-analysis.lagda.md index 875ad21cc3..b5508d4a8d 100644 --- a/src/functional-analysis.lagda.md +++ b/src/functional-analysis.lagda.md @@ -6,6 +6,7 @@ module functional-analysis where open import functional-analysis.absolute-convergence-series-real-banach-spaces public open import functional-analysis.additive-complete-metric-abelian-groups-real-banach-spaces public open import functional-analysis.convergent-series-real-banach-spaces public +open import functional-analysis.ratio-test-series-real-banach-spaces public open import functional-analysis.real-banach-spaces public open import functional-analysis.real-hilbert-spaces public open import functional-analysis.series-real-banach-spaces public diff --git a/src/functional-analysis/ratio-test-series-real-banach-spaces.lagda.md b/src/functional-analysis/ratio-test-series-real-banach-spaces.lagda.md new file mode 100644 index 0000000000..4cc1428de0 --- /dev/null +++ b/src/functional-analysis/ratio-test-series-real-banach-spaces.lagda.md @@ -0,0 +1,116 @@ +# The ratio test for series in real Banach spaces + +```agda +module functional-analysis.ratio-test-series-real-banach-spaces where +``` + +
Imports + +```agda +open import analysis.ratio-test-series-real-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.identity-types +open import foundation.propositions +open import foundation.universe-levels + +open import functional-analysis.absolute-convergence-series-real-banach-spaces +open import functional-analysis.convergent-series-real-banach-spaces +open import functional-analysis.real-banach-spaces +open import functional-analysis.series-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](functional-analysis.series-real-banach-spaces.md) +`∑ aₙ` in a [real Banach space](functional-analysis.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ₙ∥`. This condition is known as the +{{#concept "ratio test" Disambiguation="in real Banach spaces" WDID=Q165638 WD="ratio test" Agda=is-convergent-ratio-test-series-ℝ-Banach-Space}}. + +## 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/functional-analysis/real-banach-spaces.lagda.md b/src/functional-analysis/real-banach-spaces.lagda.md index 39d91fc118..358913502c 100644 --- a/src/functional-analysis/real-banach-spaces.lagda.md +++ b/src/functional-analysis/real-banach-spaces.lagda.md @@ -30,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 ``` @@ -93,6 +94,10 @@ module _ 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 diff --git a/src/real-numbers/absolute-value-real-numbers.lagda.md b/src/real-numbers/absolute-value-real-numbers.lagda.md index 1939cffe2e..356b9f9a02 100644 --- a/src/real-numbers/absolute-value-real-numbers.lagda.md +++ b/src/real-numbers/absolute-value-real-numbers.lagda.md @@ -298,6 +298,20 @@ module _ leq-abs-leq-leq-neg-ℝ = leq-max-leq-leq-ℝ x (neg-ℝ x) y ``` +### If `x < y` and `-x < y`, then `|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/geometric-sequences-real-numbers.lagda.md b/src/real-numbers/geometric-sequences-real-numbers.lagda.md index 61f906d375..5d39bfad4d 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-zero-ℝ l) ( 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/sums-of-finite-sequences-of-real-numbers.lagda.md b/src/real-numbers/sums-of-finite-sequences-of-real-numbers.lagda.md index 1e26b21c1d..8da6c6955b 100644 --- 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 @@ -9,6 +9,7 @@ module real-numbers.sums-of-finite-sequences-of-real-numbers where ```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 @@ -16,7 +17,14 @@ 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 ``` @@ -35,3 +43,27 @@ the [real numbers](real-numbers.dedekind-real-numbers.md) to any 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)) +```