@@ -1200,9 +1200,14 @@ assume a,
1200
1200
let ⟨t, ht₁, ht₂⟩ := hf₂ a in
1201
1201
⟨t, ht₁, ht₂.subset $ assume i hi, hi.mono $ inter_subset_inter (hf i) $ subset.refl _⟩
1202
1202
1203
+ lemma locally_finite.comp_inj_on {ι} {f : β → set α} {g : ι → β} (hf : locally_finite f)
1204
+ (hg : inj_on g {i | (f (g i)).nonempty}) : locally_finite (f ∘ g) :=
1205
+ λ x, let ⟨t, htx, htf⟩ := hf x in ⟨t, htx, htf.preimage $ hg.mono $ λ i hi,
1206
+ hi.out.mono $ inter_subset_left _ _⟩
1207
+
1203
1208
lemma locally_finite.comp_injective {ι} {f : β → set α} {g : ι → β} (hf : locally_finite f)
1204
1209
(hg : function.injective g) : locally_finite (f ∘ g) :=
1205
- λ x, let ⟨t, htx, htf⟩ := hf x in ⟨t, htx, htf.preimage (hg.inj_on _)⟩
1210
+ hf.comp_inj_on (hg.inj_on _)
1206
1211
1207
1212
lemma locally_finite.eventually_finite {f : β → set α} (hf : locally_finite f) (x : α) :
1208
1213
∀ᶠ s in (𝓝 x).small_sets, {i | (f i ∩ s).nonempty}.finite :=
@@ -1271,6 +1276,48 @@ begin
1271
1276
exact (hf.comp_injective subtype.coe_injective).is_closed_Union (λ i, hc _)
1272
1277
end
1273
1278
1279
+ /-- Let `f : ℕ → Π a, β a` be a sequence of (dependent) functions on a topological space. Suppose
1280
+ that the family of sets `s n = {x | f (n + 1) x ≠ f n x}` is locally finite. Then there exists a
1281
+ function `F : Π a, β a` such that for any `x`, we have `f n x = F x` on the product of an infinite
1282
+ interval `[N, +∞)` and a neighbourhood of `x`.
1283
+
1284
+ We formulate the conclusion in terms of the product of filter `filter.at_top` and `𝓝 x`. -/
1285
+ lemma locally_finite.exists_forall_eventually_eq_prod {β : α → Sort *} {f : ℕ → Π a : α, β a}
1286
+ (hf : locally_finite (λ n, {x | f (n + 1 ) x ≠ f n x})) :
1287
+ ∃ F : Π a : α, β a, ∀ x, ∀ᶠ p : ℕ × α in at_top ×ᶠ 𝓝 x, f p.1 p.2 = F p.2 :=
1288
+ begin
1289
+ choose U hUx hU using hf,
1290
+ choose N hN using λ x, (hU x).bdd_above,
1291
+ replace hN : ∀ x (n > N x) (y ∈ U x), f (n + 1 ) y = f n y,
1292
+ from λ x n hn y hy, by_contra (λ hne, hn.lt.not_le $ hN x ⟨y, hne, hy⟩),
1293
+ replace hN : ∀ x (n ≥ N x + 1 ) (y ∈ U x), f n y = f (N x + 1 ) y,
1294
+ from λ x n hn y hy, nat.le_induction rfl (λ k hle, (hN x _ hle _ hy).trans) n hn,
1295
+ refine ⟨λ x, f (N x + 1 ) x, λ x, _⟩,
1296
+ filter_upwards [filter.prod_mem_prod (eventually_gt_at_top (N x)) (hUx x)],
1297
+ rintro ⟨n, y⟩ ⟨hn : N x < n, hy : y ∈ U x⟩,
1298
+ calc f n y = f (N x + 1 ) y : hN _ _ hn _ hy
1299
+ ... = f (max (N x + 1 ) (N y + 1 )) y : (hN _ _ (le_max_left _ _) _ hy).symm
1300
+ ... = f (N y + 1 ) y : hN _ _ (le_max_right _ _) _ (mem_of_mem_nhds $ hUx y)
1301
+ end
1302
+
1303
+ /-- Let `f : ℕ → Π a, β a` be a sequence of (dependent) functions on a topological space. Suppose
1304
+ that the family of sets `s n = {x | f (n + 1) x ≠ f n x}` is locally finite. Then there exists a
1305
+ function `F : Π a, β a` such that for any `x`, for sufficiently large values of `n`, we have
1306
+ `f n y = F y` in a neighbourhood of `x`. -/
1307
+ lemma locally_finite.exists_forall_eventually_at_top_eventually_eq' {β : α → Sort *}
1308
+ {f : ℕ → Π a : α, β a} (hf : locally_finite (λ n, {x | f (n + 1 ) x ≠ f n x})) :
1309
+ ∃ F : Π a : α, β a, ∀ x, ∀ᶠ n : ℕ in at_top, ∀ᶠ y : α in 𝓝 x, f n y = F y :=
1310
+ hf.exists_forall_eventually_eq_prod.imp $ λ F hF x, (hF x).curry
1311
+
1312
+ /-- Let `f : ℕ → α → β` be a sequence of functions on a topological space. Suppose
1313
+ that the family of sets `s n = {x | f (n + 1) x ≠ f n x}` is locally finite. Then there exists a
1314
+ function `F : α → β` such that for any `x`, for sufficiently large values of `n`, we have
1315
+ `f n =ᶠ[𝓝 x] F`. -/
1316
+ lemma locally_finite.exists_forall_eventually_at_top_eventually_eq
1317
+ {f : ℕ → α → β} (hf : locally_finite (λ n, {x | f (n + 1 ) x ≠ f n x})) :
1318
+ ∃ F : α → β, ∀ x, ∀ᶠ n : ℕ in at_top, f n =ᶠ[𝓝 x] F :=
1319
+ hf.exists_forall_eventually_at_top_eventually_eq'
1320
+
1274
1321
end locally_finite
1275
1322
1276
1323
end topological_space
0 commit comments