Skip to content

Commit 92029c7

Browse files
authored
Merge pull request #130 from leanprover-community/strongly-exact
2 parents 92f188b + d218802 commit 92029c7

File tree

4 files changed

+47
-47
lines changed

4 files changed

+47
-47
lines changed

scripts/nolints.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ apply_nolint Tinv_nat_trans unused_arguments
9090
apply_nolint twoid_bound_by unused_arguments
9191

9292
-- condensed/exact.lean
93-
apply_nolint CompHausFiltPseuNormGrp₁.exact_with_constant.P1_to_P2_nat_trans_aux_1 unused_arguments
94-
apply_nolint CompHausFiltPseuNormGrp₁.exact_with_constant.P1_to_P2_nat_trans_aux_2 unused_arguments
95-
apply_nolint CompHausFiltPseuNormGrp₁.exact_with_constant.P1_to_P2_nat_trans_aux_3 unused_arguments
93+
apply_nolint CompHausFiltPseuNormGrp₁.strongly_exact.P1_to_P2_nat_trans_aux_1 unused_arguments
94+
apply_nolint CompHausFiltPseuNormGrp₁.strongly_exact.P1_to_P2_nat_trans_aux_2 unused_arguments
95+
apply_nolint CompHausFiltPseuNormGrp₁.strongly_exact.P1_to_P2_nat_trans_aux_3 unused_arguments
9696

9797
-- condensed/extr/basic.lean
9898
apply_nolint product_condition_setup.G unused_arguments

src/condensed/condensify.lean

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -274,23 +274,23 @@ begin
274274
{ simp only [condensify_nonstrict, nonstrict_extend, whisker_right_comp],
275275
repeat { apply_with mono_comp { instances := ff }; try { apply_instance } },
276276
apply Condensed.mono_to_Condensed_map,
277-
apply exact_with_constant_extend_zero_left,
277+
apply strongly_exact_extend_zero_left,
278278
intro S,
279-
apply_with exact_with_constant_of_mono { instances := ff },
279+
apply_with strongly_exact_of_mono { instances := ff },
280280
rw AddCommGroup.mono_iff_injective,
281281
exact H1 S, },
282282
{ dsimp only [condensify_map, condensify_nonstrict],
283283
rw nonstrict_extend_whisker_right_enlarging,
284284
apply Condensed.epi_to_Condensed_map _ cβ,
285-
apply exact_with_constant_extend_zero_right,
285+
apply strongly_exact_extend_zero_right,
286286
intro S,
287-
apply exact_with_constant_of_epi _ _ _ hcβ (H3b S), },
287+
apply strongly_exact_of_epi _ _ _ hcβ (H3b S), },
288288
{ dsimp only [condensify_map, condensify_nonstrict],
289289
rw nonstrict_extend_whisker_right_enlarging,
290290
simp only [nonstrict_extend, whisker_right_comp, nat_trans.comp_app, category.assoc],
291291
repeat { apply exact_of_iso_comp_exact; [apply_instance, skip] },
292-
apply Condensed.exact_of_exact_with_constant _ _ cα,
293-
apply exact_with_constant.extend,
292+
apply Condensed.exact_of_strongly_exact _ _ cα,
293+
apply strongly_exact.extend,
294294
intro S,
295295
refine ⟨_, _, hcα⟩,
296296
{ ext x, specialize H2a S, apply_fun (λ φ, φ.to_fun) at H2a, exact congr_fun H2a x },

src/condensed/exact.lean

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,13 @@ instance : has_zero_morphisms (CompHausFiltPseuNormGrp₁.{u}) :=
140140
zero_comp' := λ _ _ _ f, by { ext, exact f.map_zero } }
141141
variables {A B C : CompHausFiltPseuNormGrp₁.{u}}
142142

143-
structure exact_with_constant (f : A ⟶ B) (g : B ⟶ C) (r : ℝ≥0 → ℝ≥0) : Prop :=
143+
structure strongly_exact (f : A ⟶ B) (g : B ⟶ C) (r : ℝ≥0 → ℝ≥0) : Prop :=
144144
(comp_eq_zero : f ≫ g = 0)
145145
(cond : ∀ c : ℝ≥0, g ⁻¹' {0} ∩ (filtration B c) ⊆ f '' (filtration A (r c)))
146146
(large : id ≤ r)
147147

148-
lemma exact_with_constant.exact {f : A ⟶ B} {g : B ⟶ C} {r : ℝ≥0 → ℝ≥0}
149-
(h : exact_with_constant f g r) :
148+
lemma strongly_exact.exact {f : A ⟶ B} {g : B ⟶ C} {r : ℝ≥0 → ℝ≥0}
149+
(h : strongly_exact f g r) :
150150
exact ((to_PNG₁ ⋙ PseuNormGrp₁.to_Ab).map f) ((to_PNG₁ ⋙ PseuNormGrp₁.to_Ab).map g) :=
151151
begin
152152
rw AddCommGroup.exact_iff',
@@ -168,7 +168,7 @@ instance mono_Filtration_map_app (c₁ c₂ : ℝ≥0) (h : c₁ ⟶ c₂) (M) :
168168
mono ((Filtration.map h).app M) :=
169169
by { rw CompHaus.mono_iff_injective, convert injective_cast_le _ _ }
170170

171-
namespace exact_with_constant
171+
namespace strongly_exact
172172
noncomputable theory
173173

174174
variables (f : A ⟶ B) (g : B ⟶ C) (r : ℝ≥0 → ℝ≥0) (c : ℝ≥0) (hrc : c ≤ r c)
@@ -201,7 +201,7 @@ lemma P1_to_P2_comp_fst (hfg : f ≫ g = 0) :
201201
P1_to_P2 f g hrc hfg ≫ pullback.fst = pullback.fst :=
202202
pullback.lift_fst _ _ _
203203

204-
lemma surjective (h : exact_with_constant f g r) :
204+
lemma surjective (h : strongly_exact f g r) :
205205
∃ (hfg : f ≫ g = 0), ∀ c, function.surjective (P1_to_P2 f g (h.large c) hfg) :=
206206
begin
207207
have hfg : f ≫ g = 0,
@@ -232,7 +232,7 @@ end
232232

233233
lemma of_surjective (hfg : f ≫ g = 0) (hr : id ≤ r)
234234
(h : ∀ c, function.surjective (P1_to_P2 f g (hr c) hfg)) :
235-
exact_with_constant f g r :=
235+
strongly_exact f g r :=
236236
begin
237237
suffices H : ∀ (c : ℝ≥0), g ⁻¹' {0} ∩ filtration B c ⊆ f '' filtration A (r c),
238238
{ refine ⟨_, H, hr⟩,
@@ -258,7 +258,7 @@ begin
258258
end
259259

260260
lemma iff_surjective :
261-
exact_with_constant f g r ↔
261+
strongly_exact f g r ↔
262262
∃ (hfg : f ≫ g = 0) (hr : ∀ c, c ≤ r c),
263263
∀ c, function.surjective (P1_to_P2 f g (hr c) hfg) :=
264264
begin
@@ -267,9 +267,9 @@ begin
267267
{ rintro ⟨hfg, hr, h⟩, exact of_surjective f g hfg hr h }
268268
end
269269

270-
end exact_with_constant
270+
end strongly_exact
271271

272-
namespace exact_with_constant
272+
namespace strongly_exact
273273

274274
variables {J : Type u} [small_category J]
275275
variables {A' B' C' : J ⥤ CompHausFiltPseuNormGrp₁.{u}}
@@ -486,7 +486,7 @@ begin
486486
category_theory.limits.has_limit.iso_of_nat_iso_inv_π_assoc],
487487
erw [limit_flip_comp_lim_iso_limit_comp_lim'_hom_π_π, lim_map_π_assoc],
488488
simp only [category_theory.category.id_comp,
489-
CompHausFiltPseuNormGrp₁.exact_with_constant.P1_to_P2_nat_trans_app,
489+
CompHausFiltPseuNormGrp₁.strongly_exact.P1_to_P2_nat_trans_app,
490490
category_theory.category.assoc],
491491
erw [lim_map_π],
492492
dsimp [P1_to_P2],
@@ -513,12 +513,12 @@ end
513513

514514
lemma extend {A B C : Fintype.{u} ⥤ CompHausFiltPseuNormGrp₁.{u}}
515515
(f : A ⟶ B) (g : B ⟶ C) (r : ℝ≥0 → ℝ≥0)
516-
(hfg : ∀ S, exact_with_constant (f.app S) (g.app S) r) (S : Profinite) :
517-
exact_with_constant
516+
(hfg : ∀ S, strongly_exact (f.app S) (g.app S) r) (S : Profinite) :
517+
strongly_exact
518518
((Profinite.extend_nat_trans f).app S) ((Profinite.extend_nat_trans g).app S) r :=
519519
begin
520520
have hr : id ≤ r := (hfg $ Fintype.of punit).large,
521-
rw exact_with_constant.iff_surjective,
521+
rw strongly_exact.iff_surjective,
522522
refine ⟨_, hr, _⟩,
523523
{ rw [← nat_trans.comp_app, ← Profinite.extend_nat_trans_comp],
524524
apply limit.hom_ext,
@@ -553,7 +553,7 @@ begin
553553
apply subsingleton.elim,
554554
end
555555

556-
end exact_with_constant
556+
end strongly_exact
557557

558558
instance has_zero_nat_trans_CHFPNG₁ {𝒞 : Type*} [category 𝒞]
559559
(A B : 𝒞 ⥤ CompHausFiltPseuNormGrp₁.{u}) :
@@ -572,31 +572,31 @@ begin
572572
simp only [nat_trans.comp_app, whisker_left_app, zero_app, zero_comp, comp_zero],
573573
end
574574

575-
lemma exact_with_constant_extend_zero_left (A B C : Fintype ⥤ CompHausFiltPseuNormGrp₁.{u})
575+
lemma strongly_exact_extend_zero_left (A B C : Fintype ⥤ CompHausFiltPseuNormGrp₁.{u})
576576
(g : B ⟶ C) (r : ℝ≥0 → ℝ≥0)
577-
(hfg : ∀ S, exact_with_constant (0 : A.obj S ⟶ B.obj S) (g.app S) r) (S : Profinite) :
578-
exact_with_constant (0 : (Profinite.extend A).obj S ⟶ (Profinite.extend B).obj S)
577+
(hfg : ∀ S, strongly_exact (0 : A.obj S ⟶ B.obj S) (g.app S) r) (S : Profinite) :
578+
strongly_exact (0 : (Profinite.extend A).obj S ⟶ (Profinite.extend B).obj S)
579579
((Profinite.extend_nat_trans g).app S) r :=
580580
begin
581-
have := exact_with_constant.extend (0 : A ⟶ B) g r hfg S,
581+
have := strongly_exact.extend (0 : A ⟶ B) g r hfg S,
582582
simpa,
583583
end
584584

585-
lemma exact_with_constant_extend_zero_right (A B C : Fintype ⥤ CompHausFiltPseuNormGrp₁.{u})
585+
lemma strongly_exact_extend_zero_right (A B C : Fintype ⥤ CompHausFiltPseuNormGrp₁.{u})
586586
(f : A ⟶ B) (r : ℝ≥0 → ℝ≥0)
587-
(hfg : ∀ S, exact_with_constant (f.app S) (0 : B.obj S ⟶ C.obj S) r) (S : Profinite) :
588-
exact_with_constant ((Profinite.extend_nat_trans f).app S)
587+
(hfg : ∀ S, strongly_exact (f.app S) (0 : B.obj S ⟶ C.obj S) r) (S : Profinite) :
588+
strongly_exact ((Profinite.extend_nat_trans f).app S)
589589
(0 : (Profinite.extend B).obj S ⟶ (Profinite.extend C).obj S) r :=
590590
begin
591-
have := exact_with_constant.extend f (0 : B ⟶ C) r hfg S,
591+
have := strongly_exact.extend f (0 : B ⟶ C) r hfg S,
592592
simpa,
593593
end
594594

595595
variables (C)
596596

597-
lemma exact_with_constant_of_epi (f : A ⟶ B) (r : ℝ≥0 → ℝ≥0) (hr : id ≤ r)
597+
lemma strongly_exact_of_epi (f : A ⟶ B) (r : ℝ≥0 → ℝ≥0) (hr : id ≤ r)
598598
(hf : ∀ c, filtration B c ⊆ f '' (filtration A (r c))) :
599-
exact_with_constant f (0 : B ⟶ C) r :=
599+
strongly_exact f (0 : B ⟶ C) r :=
600600
begin
601601
refine ⟨_, _, hr⟩,
602602
{ rw comp_zero },
@@ -605,8 +605,8 @@ end
605605

606606
variables (A) {C}
607607

608-
lemma exact_with_constant_of_mono (g : B ⟶ C) [hg : mono ((to_PNG₁ ⋙ PseuNormGrp₁.to_Ab).map g)] :
609-
exact_with_constant (0 : A ⟶ B) g id :=
608+
lemma strongly_exact_of_mono (g : B ⟶ C) [hg : mono ((to_PNG₁ ⋙ PseuNormGrp₁.to_Ab).map g)] :
609+
strongly_exact (0 : A ⟶ B) g id :=
610610
begin
611611
refine ⟨_, _, le_rfl⟩,
612612
{ rw zero_comp },
@@ -654,16 +654,16 @@ begin
654654
end
655655

656656
open comphaus_filtered_pseudo_normed_group
657-
open CompHausFiltPseuNormGrp₁.exact_with_constant (P1 P2 P1_to_P2 P1_to_P2_comp_fst c_le_rc)
657+
open CompHausFiltPseuNormGrp₁.strongly_exact (P1 P2 P1_to_P2 P1_to_P2_comp_fst c_le_rc)
658658

659-
lemma exact_of_exact_with_constant {A B C : CompHausFiltPseuNormGrp₁.{u}}
659+
lemma exact_of_strongly_exact {A B C : CompHausFiltPseuNormGrp₁.{u}}
660660
(f : A ⟶ B) (g : B ⟶ C) (r : ℝ≥0 → ℝ≥0)
661-
(hfg : exact_with_constant f g r) :
661+
(hfg : strongly_exact f g r) :
662662
exact (to_Condensed.map f) (to_Condensed.map g) :=
663663
begin
664664
rw exact_iff_ExtrDisc,
665665
intro S,
666-
rw exact_with_constant.iff_surjective at hfg,
666+
rw strongly_exact.iff_surjective at hfg,
667667
rcases hfg with ⟨hfg, hr, H⟩,
668668
simp only [subtype.val_eq_coe, to_Condensed_map, CompHausFiltPseuNormGrp.Presheaf.map_app,
669669
whisker_right_app, Ab.exact_ulift_map],
@@ -704,20 +704,20 @@ end
704704
by { ext S s x, refl, }
705705

706706
lemma mono_to_Condensed_map {A B : CompHausFiltPseuNormGrp₁.{u}}
707-
(f : A ⟶ B) (hf : exact_with_constant (0 : A ⟶ A) f id) :
707+
(f : A ⟶ B) (hf : strongly_exact (0 : A ⟶ A) f id) :
708708
mono (to_Condensed.map f) :=
709709
begin
710710
refine ((abelian.tfae_mono (to_Condensed.obj A) (to_Condensed.map f)).out 2 0).mp _,
711-
have := exact_of_exact_with_constant (0 : A ⟶ A) f id hf,
711+
have := exact_of_strongly_exact (0 : A ⟶ A) f id hf,
712712
simpa only [to_Condensed_map_zero],
713713
end
714714

715715
lemma epi_to_Condensed_map {A B : CompHausFiltPseuNormGrp₁.{u}}
716-
(f : A ⟶ B) (r : ℝ≥0 → ℝ≥0) (hf : exact_with_constant f (0 : B ⟶ B) r) :
716+
(f : A ⟶ B) (r : ℝ≥0 → ℝ≥0) (hf : strongly_exact f (0 : B ⟶ B) r) :
717717
epi (to_Condensed.map f) :=
718718
begin
719719
refine ((abelian.tfae_epi (to_Condensed.obj B) (to_Condensed.map f)).out 2 0).mp _,
720-
have := exact_of_exact_with_constant f (0 : B ⟶ B) r hf,
720+
have := exact_of_strongly_exact f (0 : B ⟶ B) r hf,
721721
simpa only [to_Condensed_map_zero]
722722
end
723723

src/normed_free_pfpng/compare.lean

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@ begin
6969
simp only [cond_free_pfpng_to_normed_free_pfpng, condensify_map, condensify_nonstrict],
7070
rw nonstrict_extend_whisker_right_enlarging,
7171
apply Condensed.mono_to_Condensed_map,
72-
apply exact_with_constant_extend_zero_left,
72+
apply strongly_exact_extend_zero_left,
7373
intro S,
74-
apply_with exact_with_constant_of_mono { instances := ff },
74+
apply_with strongly_exact_of_mono { instances := ff },
7575
rw [AddCommGroup.mono_iff_injective, injective_iff_map_eq_zero],
7676
intros f hf,
7777
exact hf,
@@ -84,9 +84,9 @@ begin
8484
let κ : ℝ≥0 → ℝ≥0 := λ c, max c (c ^ (p⁻¹ : ℝ)),
8585
have hκ : id ≤ κ := λ c, le_max_left _ _,
8686
apply Condensed.epi_to_Condensed_map _ κ,
87-
apply exact_with_constant_extend_zero_right,
87+
apply strongly_exact_extend_zero_right,
8888
intro S,
89-
apply exact_with_constant_of_epi _ _ _ hκ,
89+
apply strongly_exact_of_epi _ _ _ hκ,
9090
intros c f hf,
9191
refine ⟨f, _, rfl⟩,
9292
change ∑ _, _ ≤ _ at hf,

0 commit comments

Comments
 (0)