Theorem: groupCohomology.resolution.d_eq
File: Mathlib/RepresentationTheory/GroupCohomology/Resolution.lean

Proof steps:
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
⊢ ((resolution k G).d (n + 1) n).hom = d k G (n + 1)
state_after: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ (((resolution k G).d (n + 1) n).hom ∘ₗ Finsupp.lsingle x) 1 = (d k G (n + 1) ∘ₗ Finsupp.lsingle x) 1
tactic: refine Finsupp.lhom_ext' fun x => LinearMap.ext_ring ?_
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ (((resolution k G).d (n + 1) n).hom ∘ₗ Finsupp.lsingle x) 1 = (d k G (n + 1) ∘ₗ Finsupp.lsingle x) 1
state_after: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ (((alternatingFaceMapComplex (Rep k G)).obj (classifyingSpaceUniversalCover G ⋙ (Rep.linearization k G).toFunctor)).d
          (n + 1) n).hom
      (Finsupp.single x 1) =
    (d k G (n + 1)) (Finsupp.single x 1)
tactic: dsimp [groupCohomology.resolution]
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ (((alternatingFaceMapComplex (Rep k G)).obj (classifyingSpaceUniversalCover G ⋙ (Rep.linearization k G).toFunctor)).d
          (n + 1) n).hom
      (Finsupp.single x 1) =
    (d k G (n + 1)) (Finsupp.single x 1)
state_after: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ (∑ x : Fin (n + 2),
        (-1) ^ ↑x • Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ x).op).hom)
      (Finsupp.single x 1) =
    (d k G (n + 1)) (Finsupp.single x 1)
tactic: simp_rw [alternatingFaceMapComplex_obj_d, AlternatingFaceMapComplex.objD, SimplicialObject.δ,
    Functor.comp_map, ← Int.cast_smul_eq_nsmul k ((-1) ^ _ : ℤ), Int.cast_pow, Int.cast_neg,
    Int.cast_one, Action.sum_hom, Action.smul_hom, Rep.linearization_map_hom]
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ (∑ x : Fin (n + 2),
        (-1) ^ ↑x • Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ x).op).hom)
      (Finsupp.single x 1) =
    (d k G (n + 1)) (Finsupp.single x 1)
state_after: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ ∑ c : Fin (n + 2),
      ((-1) ^ ↑c • Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ c).op).hom)
        (Finsupp.single x 1) =
    (d k G (n + 1)) (Finsupp.single x 1)
tactic: rw [LinearMap.coeFn_sum, Fintype.sum_apply]
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ ∑ c : Fin (n + 2),
      ((-1) ^ ↑c • Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ c).op).hom)
        (Finsupp.single x 1) =
    (d k G (n + 1)) (Finsupp.single x 1)
state_after: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ ∑ c : Fin (n + 2),
      ((-1) ^ ↑c • Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ c).op).hom)
        (Finsupp.single x 1) =
    ∑ p : Fin ((Opposite.unop (Opposite.op (SimplexCategory.mk (n + 1)))).len + 1),
      Finsupp.single (x ∘ p.succAbove) ((-1) ^ ↑p)
tactic: erw [d_of (k := k) x]
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
⊢ ∑ c : Fin (n + 2),
      ((-1) ^ ↑c • Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ c).op).hom)
        (Finsupp.single x 1) =
    ∑ p : Fin ((Opposite.unop (Opposite.op (SimplexCategory.mk (n + 1)))).len + 1),
      Finsupp.single (x ∘ p.succAbove) ((-1) ^ ↑p)
state_after: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
x✝¹ : Fin (n + 2)
x✝ : x✝¹ ∈ Finset.univ
⊢ ((-1) ^ ↑x✝¹ • Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ x✝¹).op).hom)
      (Finsupp.single x 1) =
    Finsupp.single (x ∘ x✝¹.succAbove) ((-1) ^ ↑x✝¹)
tactic: refine Finset.sum_congr rfl fun _ _ => ?_
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
x✝¹ : Fin (n + 2)
x✝ : x✝¹ ∈ Finset.univ
⊢ ((-1) ^ ↑x✝¹ • Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ x✝¹).op).hom)
      (Finsupp.single x 1) =
    Finsupp.single (x ∘ x✝¹.succAbove) ((-1) ^ ↑x✝¹)
state_after: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
x✝¹ : Fin (n + 2)
x✝ : x✝¹ ∈ Finset.univ
⊢ (-1) ^ ↑x✝¹ •
      (Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ x✝¹).op).hom)
        (Finsupp.single x 1) =
    Finsupp.single (x ∘ x✝¹.succAbove) ((-1) ^ ↑x✝¹)
tactic: erw [LinearMap.smul_apply]
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
x✝¹ : Fin (n + 2)
x✝ : x✝¹ ∈ Finset.univ
⊢ (-1) ^ ↑x✝¹ •
      (Finsupp.lmapDomain k k ((classifyingSpaceUniversalCover G).map (SimplexCategory.δ x✝¹).op).hom)
        (Finsupp.single x 1) =
    Finsupp.single (x ∘ x✝¹.succAbove) ((-1) ^ ↑x✝¹)
state_after: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
x✝¹ : Fin (n + 2)
x✝ : x✝¹ ∈ Finset.univ
⊢ Finsupp.single (((classifyingSpaceUniversalCover G).map (SimplexCategory.δ x✝¹).op).hom x) ((-1) ^ ↑x✝¹) =
    Finsupp.single (x ∘ x✝¹.succAbove) ((-1) ^ ↑x✝¹)
tactic: rw [Finsupp.lmapDomain_apply, Finsupp.mapDomain_single, Finsupp.smul_single', mul_one]
state_before: k G : Type u
inst✝¹ : CommRing k
n✝ : ℕ
inst✝ : Monoid G
n : ℕ
x : ((classifyingSpaceUniversalCover G).obj (Opposite.op (SimplexCategory.mk (n + 1)))).V
x✝¹ : Fin (n + 2)
x✝ : x✝¹ ∈ Finset.univ
⊢ Finsupp.single (((classifyingSpaceUniversalCover G).map (SimplexCategory.δ x✝¹).op).hom x) ((-1) ^ ↑x✝¹) =
    Finsupp.single (x ∘ x✝¹.succAbove) ((-1) ^ ↑x✝¹)
state_after: no goals
tactic: rfl