Theorem: groupCohomology.dOne_comp_eq
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

Proof steps:
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
⊢ dOne A ∘ₗ ↑(oneCochainsLequiv A) = ↑(twoCochainsLequiv A) ∘ₗ (inhomogeneousCochains A).d 1 2
state_after: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : ↑((inhomogeneousCochains A).X 1)
y : G × G
⊢ (dOne A ∘ₗ ↑(oneCochainsLequiv A)) x y = (↑(twoCochainsLequiv A) ∘ₗ (inhomogeneousCochains A).d 1 2) x y
tactic: ext x y
state_before: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : ↑((inhomogeneousCochains A).X 1)
y : G × G
⊢ (dOne A ∘ₗ ↑(oneCochainsLequiv A)) x y = (↑(twoCochainsLequiv A) ∘ₗ (inhomogeneousCochains A).d 1 2) x y
state_after: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : ↑((inhomogeneousCochains A).X 1)
y : G × G
⊢ (A.ρ y.1) (x ((Equiv.funUnique (Fin 1) G).symm y.2)) - x ((Equiv.funUnique (Fin 1) G).symm (y.1 * y.2)) +
      x ((Equiv.funUnique (Fin 1) G).symm y.1) =
    (A.ρ ((piFinTwoEquiv fun x => G).symm y 0)) (x fun i => (piFinTwoEquiv fun x => G).symm y i.succ) +
      ∑ j : Fin (1 + 1), (-1) ^ (↑j + 1) • x (j.contractNth (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y))
tactic: show A.ρ y.1 (x _) - x _ + x _ =  _ + _
state_before: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : ↑((inhomogeneousCochains A).X 1)
y : G × G
⊢ (A.ρ y.1) (x ((Equiv.funUnique (Fin 1) G).symm y.2)) - x ((Equiv.funUnique (Fin 1) G).symm (y.1 * y.2)) +
      x ((Equiv.funUnique (Fin 1) G).symm y.1) =
    (A.ρ ((piFinTwoEquiv fun x => G).symm y 0)) (x fun i => (piFinTwoEquiv fun x => G).symm y i.succ) +
      ∑ j : Fin (1 + 1), (-1) ^ (↑j + 1) • x (j.contractNth (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y))
state_after: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : ↑((inhomogeneousCochains A).X 1)
y : G × G
⊢ (A.ρ y.1) (x ((Equiv.funUnique (Fin 1) G).symm y.2)) - x ((Equiv.funUnique (Fin 1) G).symm (y.1 * y.2)) +
      x ((Equiv.funUnique (Fin 1) G).symm y.1) =
    (A.ρ ((piFinTwoEquiv fun x => G).symm y 0)) (x fun i => (piFinTwoEquiv fun x => G).symm y i.succ) +
      ((-1) ^ (↑0 + 1) • x (Fin.contractNth 0 (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y)) +
        (-1) ^ (↑1 + 1) • x (Fin.contractNth 1 (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y)))
tactic: rw [Fin.sum_univ_two]
state_before: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : ↑((inhomogeneousCochains A).X 1)
y : G × G
⊢ (A.ρ y.1) (x ((Equiv.funUnique (Fin 1) G).symm y.2)) - x ((Equiv.funUnique (Fin 1) G).symm (y.1 * y.2)) +
      x ((Equiv.funUnique (Fin 1) G).symm y.1) =
    (A.ρ ((piFinTwoEquiv fun x => G).symm y 0)) (x fun i => (piFinTwoEquiv fun x => G).symm y i.succ) +
      ((-1) ^ (↑0 + 1) • x (Fin.contractNth 0 (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y)) +
        (-1) ^ (↑1 + 1) • x (Fin.contractNth 1 (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y)))
state_after: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : ↑((inhomogeneousCochains A).X 1)
y : G × G
⊢ (A.ρ y.1) (x ((Equiv.funUnique (Fin 1) G).symm y.2)) +
      (-x ((Equiv.funUnique (Fin 1) G).symm (y.1 * y.2)) + x ((Equiv.funUnique (Fin 1) G).symm y.1)) =
    (A.ρ ((piFinTwoEquiv fun x => G).symm y 0)) (x fun i => (piFinTwoEquiv fun x => G).symm y i.succ) +
      (-x (Fin.contractNth 0 (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y)) +
        x (Fin.contractNth 1 (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y)))
tactic: simp only [Fin.val_zero, zero_add, pow_one, neg_smul, one_smul, Fin.val_one,
    Nat.one_add, neg_one_sq, sub_eq_add_neg, add_assoc]
state_before: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : ↑((inhomogeneousCochains A).X 1)
y : G × G
⊢ (A.ρ y.1) (x ((Equiv.funUnique (Fin 1) G).symm y.2)) +
      (-x ((Equiv.funUnique (Fin 1) G).symm (y.1 * y.2)) + x ((Equiv.funUnique (Fin 1) G).symm y.1)) =
    (A.ρ ((piFinTwoEquiv fun x => G).symm y 0)) (x fun i => (piFinTwoEquiv fun x => G).symm y i.succ) +
      (-x (Fin.contractNth 0 (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y)) +
        x (Fin.contractNth 1 (fun x x_1 => x * x_1) ((piFinTwoEquiv fun x => G).symm y)))
state_after: no goals
tactic: rcongr i <;> rw [Subsingleton.elim i 0] <;> rfl