Skip to content

Commit 08b3d12

Browse files
committed
Merge branch 'master' into scholzhannah/openPartialHomeomorphRenames
2 parents 18bbd3e + 34f7a6c commit 08b3d12

9 files changed

Lines changed: 137 additions & 77 deletions

File tree

Mathlib/Algebra/Lie/InvariantForm.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ theorem isSemisimple_of_nondegenerate : IsSemisimple K L := by
202202
intro J hJ hJI
203203
rw [← lie_eq_self_of_isAtom_of_nonabelian J hJ (hL J hJ), lieIdeal_oper_eq_span, lieSpan_le]
204204
rintro _ ⟨x, y, rfl⟩
205-
simp only [orthogonal_carrier, Φ.isOrtho_def, Set.mem_setOf_eq]
205+
simp only [orthogonal_carrier, LinearMap.IsOrtho, Set.mem_setOf_eq]
206206
intro z hz
207207
rw [← neg_eq_zero, ← hΦ_inv]
208208
suffices ⁅(x : L), z⁆ = 0 by simp only [this, map_zero, LinearMap.zero_apply]

Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,7 @@ Note that for general (neither symmetric nor antisymmetric) bilinear forms this
130130
chirality; in addition to this "right" orthogonal complement one could define a "left" orthogonal
131131
complement for which, for all `y` in `N`, `B x y = 0`. This variant definition is not currently
132132
provided in mathlib. -/
133-
def orthogonal (B : BilinForm R M) (N : Submodule R M) : Submodule R M where
134-
carrier := { m | ∀ n ∈ N, IsOrtho B n m }
135-
zero_mem' x _ := isOrtho_zero_right x
136-
add_mem' {x y} hx hy n hn := by
137-
rw [IsOrtho, add_right, show B n x = 0 from hx n hn, show B n y = 0 from hy n hn, zero_add]
138-
smul_mem' c x hx n hn := by
139-
rw [IsOrtho, smul_right, show B n x = 0 from hx n hn, mul_zero]
133+
def orthogonal (B : BilinForm R M) (N : Submodule R M) : Submodule R M := N.orthogonalBilin B
140134

141135
variable {N L : Submodule R M}
142136

Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1305,8 +1305,7 @@ theorem exists_orthogonal_basis [hK : Invertible (2 : K)] {B : LinearMap.BilinFo
13051305
obtain ⟨x, hx⟩ := exists_bilinForm_self_ne_zero hB₁ hB₂
13061306
rw [← Submodule.finrank_add_eq_of_isCompl (isCompl_span_singleton_orthogonal hx).symm,
13071307
finrank_span_singleton (ne_zero_of_map hx)] at hd
1308-
let B' := B.domRestrict₁₂ (Submodule.orthogonalBilin (K ∙ x) B)
1309-
(Submodule.orthogonalBilin (K ∙ x) B)
1308+
let B' := B.domRestrict₁₂ ((K ∙ x).orthogonalBilin B) ((K ∙ x).orthogonalBilin B)
13101309
obtain ⟨v', hv₁⟩ := ih (hB₂.domRestrict _ : B'.IsSymm) (Nat.succ.inj hd)
13111310
-- concatenate `x` with the basis obtained by induction
13121311
let b :=

Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ lemma orthogonal_rootSpan_eq :
332332
obtain ⟨u, hu, v, hv, rfl⟩ : ∃ᵉ (u ∈ P.rootSpan R) (v ∈ LinearMap.ker P.RootForm), u + v = y := by
333333
rw [← Submodule.mem_sup, P.isCompl_rootSpan_ker_rootForm.sup_eq_top]; exact Submodule.mem_top
334334
simp only [LinearMap.mem_ker] at hv
335-
simp [hx _ hu, hv]
335+
simp [LinearMap.IsOrtho, hx _ hu, hv]
336336

337337
@[simp]
338338
lemma orthogonal_corootSpan_eq :

Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -352,17 +352,25 @@ namespace Submodule
352352

353353
/-! ### The orthogonal complement -/
354354

355-
variable [CommRing R] [CommRing R₁] [AddCommGroup M₁] [Module R₁ M₁] [AddCommGroup M] [Module R M]
356-
{I₁ : R₁ →+* R} {I₂ : R₁ →+* R} {B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M}
355+
variable [CommSemiring R] [CommSemiring R₁] [CommSemiring R₂]
356+
variable [AddCommMonoid M] [Module R M]
357+
variable [AddCommMonoid M₁] [Module R₁ M₁]
358+
variable [AddCommMonoid M₂] [Module R₂ M₂]
359+
variable {N L : Submodule R₁ M₁}
360+
361+
section
357362

363+
variable {I₁ : R₁ →+* R} {I₂ : R₂ →+* R} {B : M₁ →ₛₗ[I₁] M₂ →ₛₗ[I₂] M}
364+
365+
variable (B) in
358366
/-- The orthogonal complement of a submodule `N` with respect to some bilinear map is the set of
359367
elements `x` which are orthogonal to all elements of `N`; i.e., for all `y` in `N`, `B x y = 0`.
360368
361369
Note that for general (neither symmetric nor antisymmetric) bilinear maps this definition has a
362370
chirality; in addition to this "left" orthogonal complement one could define a "right" orthogonal
363371
complement for which, for all `y` in `N`, `B y x = 0`. This variant definition is not currently
364372
provided in mathlib. -/
365-
def orthogonalBilin (N : Submodule R₁ M₁) (B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M) : Submodule R₁ M₁ where
373+
def orthogonalBilin (N : Submodule R₁ M₁) : Submodule R₂ M₂ where
366374
carrier := { m | ∀ n ∈ N, B.IsOrtho n m }
367375
zero_mem' x _ := B.isOrtho_zero_right x
368376
add_mem' hx hy n hn := by
@@ -371,18 +379,24 @@ def orthogonalBilin (N : Submodule R₁ M₁) (B : M₁ →ₛₗ[I₁] M₁ →
371379
smul_mem' c x hx n hn := by
372380
rw [LinearMap.IsOrtho, map_smulₛₗ, show B n x = 0 from hx n hn, smul_zero]
373381

374-
variable {N L : Submodule R₁ M₁}
375-
376382
@[simp]
377-
theorem mem_orthogonalBilin_iff {m : M} : m ∈ N.orthogonalBilin B ↔ ∀ n ∈ N, B.IsOrtho n m :=
383+
theorem mem_orthogonalBilin_iff {m : M} : m ∈ N.orthogonalBilin B ↔ ∀ n ∈ N, B.IsOrtho n m :=
378384
Iff.rfl
379385

380386
theorem orthogonalBilin_le (h : N ≤ L) : L.orthogonalBilin B ≤ N.orthogonalBilin B :=
381387
fun _ hn l hl ↦ hn l (h hl)
382388

389+
end
390+
391+
section
392+
393+
variable {I₁ : R₁ →+* R} {I₂ : R₁ →+* R} {B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M}
394+
383395
theorem le_orthogonalBilin_orthogonalBilin (b : B.IsRefl) :
384396
N ≤ (N.orthogonalBilin B).orthogonalBilin B := fun n hn _m hm ↦ b _ _ (hm n hn)
385397

398+
end
399+
386400
end Submodule
387401

388402
namespace LinearMap
@@ -394,7 +408,7 @@ variable [Field K] [AddCommGroup V] [Module K V] [Field K₁] [AddCommGroup V₁
394408

395409
-- ↓ This lemma only applies in fields as we require `a * b = 0 → a = 0 ∨ b = 0`
396410
theorem span_singleton_inf_orthogonal_eq_bot (B : V₁ →ₛₗ[J₁] V₁ →ₛₗ[J₁'] V₂) (x : V₁)
397-
(hx : ¬B.IsOrtho x x) : (K₁ ∙ x) ⊓ Submodule.orthogonalBilin (K₁ ∙ x) B = ⊥ := by
411+
(hx : ¬B.IsOrtho x x) : (K₁ ∙ x) ⊓ (K₁ ∙ x).orthogonalBilin B = ⊥ := by
398412
rw [← Finset.coe_singleton]
399413
refine eq_bot_iff.2 fun y h ↦ ?_
400414
obtain ⟨μ, -, rfl⟩ := Submodule.mem_span_finset.1 h.1
@@ -408,7 +422,7 @@ theorem span_singleton_inf_orthogonal_eq_bot (B : V₁ →ₛₗ[J₁] V₁ →
408422

409423
-- ↓ This lemma only applies in fields since we use the `mul_eq_zero`
410424
theorem orthogonal_span_singleton_eq_to_lin_ker {B : V →ₗ[K] V →ₛₗ[J] V₂} (x : V) :
411-
Submodule.orthogonalBilin (K ∙ x) B = LinearMap.ker (B x) := by
425+
(K ∙ x).orthogonalBilin B = LinearMap.ker (B x) := by
412426
ext y
413427
simp_rw [Submodule.mem_orthogonalBilin_iff, LinearMap.mem_ker, Submodule.mem_span_singleton]
414428
constructor
@@ -419,15 +433,15 @@ theorem orthogonal_span_singleton_eq_to_lin_ker {B : V →ₗ[K] V →ₛₗ[J]
419433

420434
-- todo: Generalize this to sesquilinear maps
421435
theorem span_singleton_sup_orthogonal_eq_top {B : V →ₗ[K] V →ₗ[K] K} {x : V} (hx : ¬B.IsOrtho x x) :
422-
(K ∙ x) ⊔ Submodule.orthogonalBilin (N := K ∙ x) (B := B) = ⊤ := by
436+
(K ∙ x) ⊔ (K ∙ x).orthogonalBilin B = ⊤ := by
423437
rw [orthogonal_span_singleton_eq_to_lin_ker]
424438
exact (B x).span_singleton_sup_ker_eq_top hx
425439

426440
-- todo: Generalize this to sesquilinear maps
427441
/-- Given a bilinear form `B` and some `x` such that `B x x ≠ 0`, the span of the singleton of `x`
428442
is complement to its orthogonal complement. -/
429443
theorem isCompl_span_singleton_orthogonal {B : V →ₗ[K] V →ₗ[K] K} {x : V} (hx : ¬B.IsOrtho x x) :
430-
IsCompl (K ∙ x) (Submodule.orthogonalBilin (N := K ∙ x) (B := B)) :=
444+
IsCompl (K ∙ x) ((K ∙ x).orthogonalBilin B) :=
431445
{ disjoint := disjoint_iff.2 <| span_singleton_inf_orthogonal_eq_bot B x hx
432446
codisjoint := codisjoint_iff.2 <| span_singleton_sup_orthogonal_eq_top hx }
433447

Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -111,25 +111,17 @@ theorem measurable_limit_of_tendsto_metrizable_ae {ι} [Countable ι] [Nonempty
111111
inhabit ι
112112
rcases eq_or_neBot L with (rfl | hL)
113113
· exact ⟨(hf default).mk _, (hf default).measurable_mk, Eventually.of_forall fun x => tendsto_bot⟩
114-
let p : α → (ι → β) → Prop := fun x f' => ∃ l : β, Tendsto (fun n => f' n) L (𝓝 l)
115-
have hp_mem : ∀ x ∈ aeSeqSet hf p, p x fun n => f n x := fun x hx =>
116-
aeSeq.fun_prop_of_mem_aeSeqSet hf hx
117-
have h_ae_eq : ∀ᵐ x ∂μ, ∀ n, aeSeq hf p n x = f n x := aeSeq.aeSeq_eq_fun_ae hf h_ae_tendsto
118-
set f_lim : α → β := fun x => dite (x ∈ aeSeqSet hf p) (fun h => (hp_mem x h).choose)
119-
fun _ => (⟨f default x⟩ : Nonempty β).some
120-
have hf_lim : ∀ x, Tendsto (fun n => aeSeq hf p n x) L (𝓝 (f_lim x)) := by
121-
intro x
122-
simp only [aeSeq, f_lim]
123-
split_ifs with h
124-
· refine (hp_mem x h).choose_spec.congr fun n => ?_
125-
exact (aeSeq.mk_eq_fun_of_mem_aeSeqSet hf h n).symm
126-
· exact tendsto_const_nhds
127-
have h_ae_tendsto_f_lim : ∀ᵐ x ∂μ, Tendsto (fun n => f n x) L (𝓝 (f_lim x)) :=
128-
h_ae_eq.mono fun x hx => (hf_lim x).congr hx
129-
have h_f_lim_meas : Measurable f_lim :=
130-
measurable_of_tendsto_metrizable' L (aeSeq.measurable hf p)
131-
(tendsto_pi_nhds.mpr fun x => hf_lim x)
132-
exact ⟨f_lim, h_f_lim_meas, h_ae_tendsto_f_lim⟩
114+
set f_lim : α → β := fun x ↦
115+
if h : ∃ l : β, Tendsto (fun n ↦ f n x) L (𝓝 l) then h.choose
116+
else (⟨f default x⟩ : Nonempty β).some
117+
have h_ae_tendsto_f_lim : ∀ᵐ x ∂μ, Tendsto (fun n ↦ f n x) L (𝓝 (f_lim x)) := by
118+
filter_upwards [h_ae_tendsto] with x hx
119+
simpa [f_lim, hx] using hx.choose_spec
120+
have hf_lim : AEMeasurable f_lim μ :=
121+
aemeasurable_of_tendsto_metrizable_ae L hf h_ae_tendsto_f_lim
122+
refine ⟨hf_lim.mk f_lim, hf_lim.measurable_mk, ?_⟩
123+
filter_upwards [h_ae_tendsto_f_lim, hf_lim.ae_eq_mk] with x hx h_eq
124+
simpa [h_eq] using hx
133125

134126
end Limits
135127

Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,9 @@ theorem memLp_trim_of_mem_lpMeasSubgroup (hm : m ≤ m0) (f : Lp F p μ)
134134
MemLp (mem_lpMeasSubgroup_iff_aestronglyMeasurable.mp hf_meas).choose p (μ.trim hm) := by
135135
have hf : AEStronglyMeasurable[m] f μ :=
136136
mem_lpMeasSubgroup_iff_aestronglyMeasurable.mp hf_meas
137-
let g := hf.choose
138-
obtain ⟨hg, hfg⟩ := hf.choose_spec
139-
change MemLp g p (μ.trim hm)
140-
refine ⟨hg.aestronglyMeasurable, ?_⟩
141-
have h_eLpNorm_fg : eLpNorm g p (μ.trim hm) = eLpNorm f p μ := by
142-
rw [eLpNorm_trim hm hg]
143-
exact eLpNorm_congr_ae hfg.symm
144-
rw [h_eLpNorm_fg]
137+
change MemLp (hf.mk f) p (μ.trim hm)
138+
refine ⟨hf.stronglyMeasurable_mk.aestronglyMeasurable, ?_⟩
139+
rw [eLpNorm_trim hm hf.stronglyMeasurable_mk, eLpNorm_congr_ae hf.ae_eq_mk.symm]
145140
exact Lp.eLpNorm_lt_top f
146141

147142
/-- If `f` belongs to `Lp` for the measure `μ.trim hm`, then it belongs to the subgroup

Mathlib/MeasureTheory/Function/LpSpace/Complete.lean

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -282,26 +282,10 @@ theorem ae_tendsto_of_cauchy_eLpNorm' [CompleteSpace E] {f : ℕ → α → E} {
282282
have h4 : ∀ᵐ x ∂μ, ∑' i, ‖f (i + 1) x - f i x‖ₑ < ∞ :=
283283
tsum_enorm_sub_ae_lt_top hf hp1 hB h3
284284
exact h4.mono fun x hx => .of_nnnorm <| ENNReal.tsum_coe_ne_top_iff_summable.mp hx.ne
285-
have h :
286-
∀ᵐ x ∂μ, ∃ l : E,
287-
atTop.Tendsto (fun n => ∑ i ∈ Finset.range n, (f (i + 1) x - f i x)) (𝓝 l) := by
288-
refine h_summable.mono fun x hx => ?_
289-
let hx_sum := hx.hasSum.tendsto_sum_nat
290-
exact ⟨∑' i, (f (i + 1) x - f i x), hx_sum⟩
291-
refine h.mono fun x hx => ?_
292-
obtain ⟨l, hx⟩ := hx
293-
have h_rw_sum :
294-
(fun n => ∑ i ∈ Finset.range n, (f (i + 1) x - f i x)) = fun n => f n x - f 0 x := by
295-
ext1 n
296-
change
297-
(∑ i ∈ Finset.range n, ((fun m => f m x) (i + 1) - (fun m => f m x) i)) = f n x - f 0 x
298-
rw [Finset.sum_range_sub (fun m => f m x)]
299-
rw [h_rw_sum] at hx
300-
have hf_rw : (fun n => f n x) = fun n => f n x - f 0 x + f 0 x := by
301-
ext1 n
302-
abel
303-
rw [hf_rw]
304-
exact ⟨l + f 0 x, Tendsto.add_const _ hx⟩
285+
refine h_summable.mono fun x hx ↦ ?_
286+
have hx_sum := hx.hasSum.tendsto_sum_nat
287+
rw [funext fun n ↦ Finset.sum_range_sub (fun m ↦ f m x) n] at hx_sum
288+
exact ⟨∑' i, (f (i + 1) x - f i x) + f 0 x, by simpa using hx_sum.add_const (f 0 x)⟩
305289

306290
theorem ae_tendsto_of_cauchy_eLpNorm [CompleteSpace E] {f : ℕ → α → E}
307291
(hf : ∀ n, AEStronglyMeasurable (f n) μ) (hp : 1 ≤ p) {B : ℕ → ℝ≥0∞} (hB : ∑' i, B i ≠ ∞)

Mathlib/Probability/Process/Adapted.lean

Lines changed: 91 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,22 @@ public import Mathlib.Topology.Instances.Discrete
1111
/-!
1212
# Adapted and progressively measurable processes
1313
14-
This file defines the related notions of a process `u` being `Adapted`, `StronglyAdapted`
15-
or `StronglyProgressive` (progressively measurable) with respect to a filter `f`, and proves
16-
some basic facts about them.
14+
This file defines the related notions of a process `u` being (strongly) `Adapted` or
15+
`Progressive` (progressively measurable) with respect to a filtration `f`, and proves some
16+
basic facts about them.
1717
1818
## Main definitions
1919
2020
* `MeasureTheory.Adapted`: a sequence of functions `u` is said to be adapted to a
2121
filtration `f` if at each point in time `i`, `u i` is `f i`-measurable
22-
* `MeasureTheory.StronglyAdapted`: a sequence of functions `u` is said to be strongly adapted to a
23-
filtration `f` if at each point in time `i`, `u i` is `f i`-strongly measurable
24-
* `MeasureTheory.IsStronglyProgressive`: a sequence of functions `u` is said to be strongly
25-
progressive with respect to a filtration `f` if at each point in time `i`, `u` restricted to
26-
`Set.Iic i × Ω` is strongly measurable with respect to the product `MeasurableSpace` structure
27-
where the σ-algebra used for `Ω` is `f i`.
22+
* `MeasureTheory.IsProgressive`: a sequence of functions `u` is said to be progressive with respect
23+
to a filtration `f` if at each point in time `i`, `u` restricted to `Set.Iic i × Ω` is strongly
24+
measurable with respect to the product `MeasurableSpace` structure where the σ-algebra used for
25+
`Ω` is `f i`.
26+
We also provide the following variants, which use `MeasureTheory.StronglyMeasurable` instead
27+
of `Measurable`:
28+
* `MeasureTheory.StronglyAdapted`
29+
* `MeasureTheory.IsStronglyProgressive`
2830
2931
## Main results
3032
@@ -178,6 +180,77 @@ theorem Filtration.stronglyAdapted_natural [∀ i, MetrizableSpace (β i)]
178180

179181
end StronglyAdapted
180182

183+
section Progressive
184+
185+
variable {β : Type*} {u v : ι → Ω → β}
186+
187+
/-- Progressive process. A sequence of functions `u` is said to be progressive with respect
188+
to a filtration `f` if at each point in time `i`, `u` restricted to `Set.Iic i × Ω` is measurable
189+
with respect to the product `MeasurableSpace` structure where the σ-algebra used for `Ω` is `f i`.
190+
The usual definition uses the interval `[0,i]`, which we replace by `Set.Iic i`. We recover the
191+
usual definition for index types `ℝ≥0` or `ℕ`. -/
192+
def IsProgressive [MeasurableSpace ι] [MeasurableSpace β] (f : Filtration ι m)
193+
(u : ι → Ω → β) : Prop :=
194+
∀ i, Measurable[Subtype.instMeasurableSpace.prod (f i)] fun p : Set.Iic i × Ω => u p.1 p.2
195+
196+
theorem isProgressive_const {mi : MeasurableSpace ι} {mβ : MeasurableSpace β} (f : Filtration ι m)
197+
(b : β) : IsProgressive f (fun _ _ => b : ι → Ω → β) :=
198+
fun _ ↦ by exact measurable_const
199+
200+
namespace IsProgressive
201+
202+
variable {mi : MeasurableSpace ι} {mβ : MeasurableSpace β}
203+
204+
protected theorem adapted (h : IsProgressive f u) : Adapted f u := by
205+
intro i
206+
have : u i = (fun p : Set.Iic i × Ω => u p.1 p.2) ∘ fun x => (⟨i, Set.mem_Iic.mpr le_rfl⟩, x) :=
207+
rfl
208+
rw [this]
209+
exact (h i).comp measurable_prodMk_left
210+
211+
protected theorem comp {t : ι → Ω → ι} (h : IsProgressive f u) (ht : IsProgressive f t)
212+
(ht_le : ∀ i ω, t i ω ≤ i) :
213+
IsProgressive f fun i ω => u (t i ω) ω := by
214+
intro i
215+
have : (fun p : ↥(Set.Iic i) × Ω => u (t (p.fst : ι) p.snd) p.snd) =
216+
(fun p : ↥(Set.Iic i) × Ω => u (p.fst : ι) p.snd) ∘ fun p : ↥(Set.Iic i) × Ω =>
217+
(⟨t (p.fst : ι) p.snd, Set.mem_Iic.mpr ((ht_le _ _).trans p.fst.prop)⟩, p.snd) := rfl
218+
rw [this]
219+
exact (h i).comp ((ht i).subtype_mk.prodMk measurable_snd)
220+
221+
section Arithmetic
222+
223+
@[to_additive]
224+
protected theorem mul [Mul β] [MeasurableMul₂ β] (hu : IsProgressive f u)
225+
(hv : IsProgressive f v) : IsProgressive f fun i ω ↦ (u i ω * v i ω) :=
226+
fun i ↦ Measurable.mul (hu i) (hv i)
227+
228+
@[to_additive]
229+
protected theorem finsetProd {γ} [CommMonoid β] [MeasurableMul₂ β] {U : γ → ι → Ω → β}
230+
{s : Finset γ} (h : ∀ c ∈ s, IsProgressive f (U c)) :
231+
IsProgressive f fun i ω ↦ ∏ c ∈ s, U c i ω :=
232+
fun i ↦ s.measurable_prod fun c hc ↦ h c hc i
233+
234+
@[to_additive]
235+
protected theorem inv [Group β] [MeasurableInv β] (hu : IsProgressive f u) :
236+
IsProgressive f fun i ω => (u i ω)⁻¹ := fun i ↦ (hu i).inv
237+
238+
@[to_additive]
239+
protected theorem div [Group β] [MeasurableDiv₂ β] (hu : IsProgressive f u)
240+
(hv : IsProgressive f v) : IsProgressive f fun i ω ↦ u i ω / v i ω :=
241+
fun i ↦ Measurable.div (hu i) (hv i)
242+
243+
/-- The norm of a progressive process is progressive. -/
244+
protected lemma norm [NormedAddCommGroup β] [OpensMeasurableSpace β] (hu : IsProgressive f u) :
245+
IsProgressive f fun t ω ↦ ‖u t ω‖ :=
246+
fun i ↦ by apply @(hu i).norm; infer_instance
247+
248+
end Arithmetic
249+
250+
end IsProgressive
251+
252+
end Progressive
253+
181254
variable {β : Type*} [TopologicalSpace β] {u v : ι → Ω → β}
182255

183256
/-- Strongly progressive process. A sequence of functions `u` is said to be strongly
@@ -264,6 +337,15 @@ end Arithmetic
264337

265338
end IsStronglyProgressive
266339

340+
lemma IsProgressive.isStronglyProgressive {mi : MeasurableSpace ι} {mβ : MeasurableSpace β}
341+
[PseudoMetrizableSpace β] [SecondCountableTopology β] [OpensMeasurableSpace β]
342+
(h : IsProgressive f u) : IsStronglyProgressive f u :=
343+
fun i ↦ (h i).stronglyMeasurable
344+
345+
lemma IsStronglyProgressive.isProgressive {mi : MeasurableSpace ι} {mβ : MeasurableSpace β}
346+
[PseudoMetrizableSpace β] [BorelSpace β] (h : IsStronglyProgressive f u) : IsProgressive f u :=
347+
fun i ↦ (h i).measurable
348+
267349
theorem isStronglyProgressive_of_tendsto' {γ} [MeasurableSpace ι] [PseudoMetrizableSpace β]
268350
(fltr : Filter γ) [fltr.NeBot] [fltr.IsCountablyGenerated] {U : γ → ι → Ω → β}
269351
(h : ∀ l, IsStronglyProgressive f (U l)) (h_tendsto : Tendsto U fltr (𝓝 u)) :

0 commit comments

Comments
 (0)