Theorem: Subgroup.mulSingle_mem_pi
File: Mathlib/GroupTheory/Subgroup/Basic.lean

tactic: constructor
state_before: G : Type ?u.323215
G' : Type ?u.323218
inst✝⁶ : Group G
inst✝⁵ : Group G'
A : Type ?u.323227
inst✝⁴ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type ?u.323248
inst✝³ : Group N
P : Type ?u.323254
inst✝² : Group P
η : Type u_1
f : η → Type u_2
inst✝¹ : (i : η) → Group (f i)
inst✝ : DecidableEq η
I : Set η
H : (i : η) → Subgroup (f i)
i : η
x : f i
⊢ Pi.mulSingle i x ∈ pi I H ↔ i ∈ I → x ∈ H i

tactic: intro h hi
state_before: case mp
G : Type ?u.323215
G' : Type ?u.323218
inst✝⁶ : Group G
inst✝⁵ : Group G'
A : Type ?u.323227
inst✝⁴ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type ?u.323248
inst✝³ : Group N
P : Type ?u.323254
inst✝² : Group P
η : Type u_1
f : η → Type u_2
inst✝¹ : (i : η) → Group (f i)
inst✝ : DecidableEq η
I : Set η
H : (i : η) → Subgroup (f i)
i : η
x : f i
⊢ Pi.mulSingle i x ∈ pi I H → i ∈ I → x ∈ H i

tactic: simpa using h i hi
state_before: case mp
G : Type ?u.323215
G' : Type ?u.323218
inst✝⁶ : Group G
inst✝⁵ : Group G'
A : Type ?u.323227
inst✝⁴ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type ?u.323248
inst✝³ : Group N
P : Type ?u.323254
inst✝² : Group P
η : Type u_1
f : η → Type u_2
inst✝¹ : (i : η) → Group (f i)
inst✝ : DecidableEq η
I : Set η
H : (i : η) → Subgroup (f i)
i : η
x : f i
h : Pi.mulSingle i x ∈ pi I H
hi : i ∈ I
⊢ x ∈ H i

tactic: intro h j hj
state_before: case mpr
G : Type ?u.323215
G' : Type ?u.323218
inst✝⁶ : Group G
inst✝⁵ : Group G'
A : Type ?u.323227
inst✝⁴ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type ?u.323248
inst✝³ : Group N
P : Type ?u.323254
inst✝² : Group P
η : Type u_1
f : η → Type u_2
inst✝¹ : (i : η) → Group (f i)
inst✝ : DecidableEq η
I : Set η
H : (i : η) → Subgroup (f i)
i : η
x : f i
⊢ (i ∈ I → x ∈ H i) → Pi.mulSingle i x ∈ pi I H

tactic: by_cases heq : j = i
state_before: case mpr
G : Type ?u.323215
G' : Type ?u.323218
inst✝⁶ : Group G
inst✝⁵ : Group G'
A : Type ?u.323227
inst✝⁴ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type ?u.323248
inst✝³ : Group N
P : Type ?u.323254
inst✝² : Group P
η : Type u_1
f : η → Type u_2
inst✝¹ : (i : η) → Group (f i)
inst✝ : DecidableEq η
I : Set η
H : (i : η) → Subgroup (f i)
i : η
x : f i
h : i ∈ I → x ∈ H i
j : η
hj : j ∈ I
⊢ Pi.mulSingle i x j ∈ (fun i => ((fun i => (H i).toSubmonoid) i).carrier) j

tactic: subst heq
state_before: case pos
G : Type ?u.323215
G' : Type ?u.323218
inst✝⁶ : Group G
inst✝⁵ : Group G'
A : Type ?u.323227
inst✝⁴ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type ?u.323248
inst✝³ : Group N
P : Type ?u.323254
inst✝² : Group P
η : Type u_1
f : η → Type u_2
inst✝¹ : (i : η) → Group (f i)
inst✝ : DecidableEq η
I : Set η
H : (i : η) → Subgroup (f i)
i : η
x : f i
h : i ∈ I → x ∈ H i
j : η
hj : j ∈ I
heq : j = i
⊢ Pi.mulSingle i x j ∈ (fun i => ((fun i => (H i).toSubmonoid) i).carrier) j

tactic: simpa using h hj
state_before: case pos
G : Type ?u.323215
G' : Type ?u.323218
inst✝⁶ : Group G
inst✝⁵ : Group G'
A : Type ?u.323227
inst✝⁴ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type ?u.323248
inst✝³ : Group N
P : Type ?u.323254
inst✝² : Group P
η : Type u_1
f : η → Type u_2
inst✝¹ : (i : η) → Group (f i)
inst✝ : DecidableEq η
I : Set η
H : (i : η) → Subgroup (f i)
j : η
hj : j ∈ I
x : f j
h : j ∈ I → x ∈ H j
⊢ Pi.mulSingle j x j ∈ (fun i => ((fun i => (H i).toSubmonoid) i).carrier) j

tactic: simp [heq, one_mem]
state_before: case neg
G : Type ?u.323215
G' : Type ?u.323218
inst✝⁶ : Group G
inst✝⁵ : Group G'
A : Type ?u.323227
inst✝⁴ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type ?u.323248
inst✝³ : Group N
P : Type ?u.323254
inst✝² : Group P
η : Type u_1
f : η → Type u_2
inst✝¹ : (i : η) → Group (f i)
inst✝ : DecidableEq η
I : Set η
H : (i : η) → Subgroup (f i)
i : η
x : f i
h : i ∈ I → x ∈ H i
j : η
hj : j ∈ I
heq : ¬j = i
⊢ Pi.mulSingle i x j ∈ (fun i => ((fun i => (H i).toSubmonoid) i).carrier) j