Theorem: tprod_const
File: Mathlib/Topology/Algebra/InfiniteSum/Group.lean

tactic: rcases finite_or_infinite β with hβ|hβ
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
⊢ ∏' (x : β), a = a ^ Nat.card β
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Finite β
⊢ ∏' (x : β), a = a ^ Nat.card β

case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Infinite β
⊢ ∏' (x : β), a = a ^ Nat.card β

tactic: letI : Fintype β := Fintype.ofFinite β
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Finite β
⊢ ∏' (x : β), a = a ^ Nat.card β
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Finite β
this : Fintype β := Fintype.ofFinite β
⊢ ∏' (x : β), a = a ^ Nat.card β

tactic: rw [tprod_eq_prod (s := univ) (fun x hx ↦ (hx (mem_univ x)).elim)]
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Finite β
this : Fintype β := Fintype.ofFinite β
⊢ ∏' (x : β), a = a ^ Nat.card β
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Finite β
this : Fintype β := Fintype.ofFinite β
⊢ ∏ b : β, a = a ^ Nat.card β

tactic: simp only [prod_const, Nat.card_eq_fintype_card, Fintype.card]
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Finite β
this : Fintype β := Fintype.ofFinite β
⊢ ∏ b : β, a = a ^ Nat.card β
state_after: no goals

tactic: simp only [Nat.card_eq_zero_of_infinite, pow_zero]
state_before: case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Infinite β
⊢ ∏' (x : β), a = a ^ Nat.card β
state_after: case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Infinite β
⊢ ∏' (x : β), a = 1

tactic: rcases eq_or_ne a 1 with rfl|ha
state_before: case inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Infinite β
⊢ ∏' (x : β), a = 1
state_after: case inr.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
hβ : Infinite β
⊢ ∏' (x : β), 1 = 1

case inr.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Infinite β
ha : a ≠ 1
⊢ ∏' (x : β), a = 1

tactic: simp
state_before: case inr.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
hβ : Infinite β
⊢ ∏' (x : β), 1 = 1
state_after: no goals

tactic: apply tprod_eq_one_of_not_multipliable
state_before: case inr.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Infinite β
ha : a ≠ 1
⊢ ∏' (x : β), a = 1
state_after: case inr.inr.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Infinite β
ha : a ≠ 1
⊢ ¬Multipliable fun b => a

tactic: simpa [multipliable_const_iff] using ha
state_before: case inr.inr.h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝³ : TopologicalSpace G
inst✝² : CommGroup G
inst✝¹ : TopologicalGroup G
f : α → G
inst✝ : T2Space G
a : G
hβ : Infinite β
ha : a ≠ 1
⊢ ¬Multipliable fun b => a
state_after: no goals