Skip to content

Commit 5e62daf

Browse files
committed
chore(BigOperators/Fin): change RHS of Fin.prod_trunc (#24195)
This kind of `Fin.castLE` is called `Fin.castAdd`. Also golf away the only usage of this lemma in the library.
1 parent 44efe04 commit 5e62daf

File tree

2 files changed

+10
-22
lines changed

2 files changed

+10
-22
lines changed

Mathlib/Algebra/BigOperators/Fin.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,8 @@ theorem prod_univ_add {M : Type*} [CommMonoid M] {a b : ℕ} (f : Fin (a + b)
179179
@[to_additive]
180180
theorem prod_trunc {M : Type*} [CommMonoid M] {a b : ℕ} (f : Fin (a + b) → M)
181181
(hf : ∀ j : Fin b, f (natAdd a j) = 1) :
182-
(∏ i : Fin (a + b), f i) = ∏ i : Fin a, f (castLE (Nat.le.intro rfl) i) := by
182+
(∏ i : Fin (a + b), f i) = ∏ i : Fin a, f (castAdd b i) := by
183183
rw [prod_univ_add, Fintype.prod_eq_one _ hf, mul_one]
184-
rfl
185184

186185
lemma sum_neg_one_pow (R : Type*) [Ring R] (m : ℕ) :
187186
(∑ n : Fin m, (-1) ^ n.1 : R) = if Even m then 0 else 1 := by

Mathlib/AlgebraicTopology/DoldKan/Faces.lean

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,8 @@ theorem of_comp {Y Z : C} {q n : ℕ} {φ : Y ⟶ X _⦋n + 1⦌} (v : HigherFac
6262

6363
theorem comp_Hσ_eq {Y : C} {n a q : ℕ} {φ : Y ⟶ X _⦋n + 1⦌} (v : HigherFacesVanish q φ)
6464
(hnaq : n = a + q) :
65-
φ ≫ (Hσ q).f (n + 1) =
66-
-φ ≫ X.δ ⟨a + 1, Nat.succ_lt_succ (Nat.lt_succ_iff.mpr (Nat.le.intro hnaq.symm))⟩ ≫
67-
X.σ ⟨a, Nat.lt_succ_iff.mpr (Nat.le.intro hnaq.symm)⟩ := by
68-
have hnaq_shift : ∀ d : ℕ, n + d = a + d + q := by
69-
intro d
70-
rw [add_assoc, add_comm d, ← add_assoc, hnaq]
65+
φ ≫ (Hσ q).f (n + 1) = -φ ≫ X.δ ⟨a + 1, by omega⟩ ≫ X.σ ⟨a, by omega⟩ := by
66+
have hnaq_shift (d : ℕ) : n + d = a + d + q := by omega
7167
rw [Hσ, Homotopy.nullHomotopicMap'_f (c_mk (n + 2) (n + 1) rfl) (c_mk (n + 1) n rfl),
7268
hσ'_eq hnaq (c_mk (n + 1) n rfl), hσ'_eq (hnaq_shift 1) (c_mk (n + 2) (n + 1) rfl)]
7369
simp only [AlternatingFaceMapComplex.obj_d_eq, eqToHom_refl, comp_id, comp_sum, sum_comp,
@@ -142,23 +138,16 @@ theorem comp_Hσ_eq_zero {Y : C} {n q : ℕ} {φ : Y ⟶ X _⦋n + 1⦌} (v : Hi
142138
· simp only [hσ'_eq (show n + 1 = 0 + q by omega) (c_mk (n + 2) (n + 1) rfl), pow_zero,
143139
Fin.mk_zero, one_zsmul, eqToHom_refl, comp_id, comp_sum,
144140
AlternatingFaceMapComplex.obj_d_eq]
145-
rw [← Fin.sum_congr' _ (show 2 + (n + 1) = n + 1 + 2 by omega), Fin.sum_trunc]
146-
· simp only [Fin.sum_univ_castSucc, Fin.sum_univ_zero, zero_add, Fin.last, Fin.castLE_mk,
147-
Fin.cast_mk, Fin.castSucc_mk]
148-
simp only [Fin.mk_zero, Fin.val_zero, pow_zero, one_zsmul, Fin.mk_one, Fin.val_one, pow_one,
149-
neg_smul, comp_neg]
150-
rw [← Fin.castSucc_zero (n := n + 1), δ_comp_σ_self, ← Fin.succ_zero_eq_one, δ_comp_σ_succ,
141+
-- All terms of the sum but the first two are zeros
142+
rw [Fin.sum_univ_succ, Fin.sum_univ_succ, Fintype.sum_eq_zero, add_zero]
143+
· simp only [Fin.val_zero, Fin.val_succ, Fin.coe_castSucc, zero_add, pow_zero, one_smul,
144+
pow_one, neg_smul, comp_neg, ← Fin.castSucc_zero (n := n + 1), δ_comp_σ_self, δ_comp_σ_succ,
151145
add_neg_cancel]
152146
· intro j
153-
dsimp [Fin.cast, Fin.castLE, Fin.castLT]
154147
rw [comp_zsmul, comp_zsmul, δ_comp_σ_of_gt', v.comp_δ_eq_zero_assoc, zero_comp, zsmul_zero]
155-
· simp only [Fin.lt_iff_val_lt_val]
156-
dsimp [Fin.succ]
157-
omega
158-
· intro h
159-
simp only [Fin.pred, Fin.subNat, Fin.ext_iff, Nat.succ_add_sub_one,
160-
Fin.val_zero, add_eq_zero, false_and, reduceCtorEq] at h
161-
· simp only [Fin.pred, Fin.subNat, Nat.pred_eq_sub_one, Nat.succ_add_sub_one]
148+
· simp only [Fin.succ_lt_succ_iff, j.succ_pos]
149+
· simp [Fin.succ_ne_zero]
150+
· dsimp
162151
omega
163152

164153
theorem induction {Y : C} {n q : ℕ} {φ : Y ⟶ X _⦋n + 1⦌} (v : HigherFacesVanish q φ) :

0 commit comments

Comments
 (0)