Theorem: Subgroup.le_pi_iff
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: constructor
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
⊢ J ≤ pi I H ↔ ∀ i ∈ I, map (Pi.evalMonoidHom f i) J ≤ H i
state_after: case mp
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
⊢ J ≤ pi I H → ∀ i ∈ I, map (Pi.evalMonoidHom f i) J ≤ H i

case mpr
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
⊢ (∀ i ∈ I, map (Pi.evalMonoidHom f i) J ≤ H i) → J ≤ pi I H

tactic: intro h i hi
state_before: case mp
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
⊢ J ≤ pi I H → ∀ i ∈ I, map (Pi.evalMonoidHom f i) J ≤ H i
state_after: case mp
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
h : J ≤ pi I H
i : η
hi : i ∈ I
⊢ map (Pi.evalMonoidHom f i) J ≤ H i

tactic: rintro _ ⟨x, hx, rfl⟩
state_before: case mp
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
h : J ≤ pi I H
i : η
hi : i ∈ I
⊢ map (Pi.evalMonoidHom f i) J ≤ H i
state_after: case mp.intro.intro
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
h : J ≤ pi I H
i : η
hi : i ∈ I
x : (i : η) → f i
hx : x ∈ ↑J
⊢ (Pi.evalMonoidHom f i) x ∈ H i

tactic: exact (h hx) _ hi
state_before: case mp.intro.intro
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
h : J ≤ pi I H
i : η
hi : i ∈ I
x : (i : η) → f i
hx : x ∈ ↑J
⊢ (Pi.evalMonoidHom f i) x ∈ H i
state_after: no goals

tactic: intro h x hx i hi
state_before: case mpr
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
⊢ (∀ i ∈ I, map (Pi.evalMonoidHom f i) J ≤ H i) → J ≤ pi I H
state_after: case mpr
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
h : ∀ i ∈ I, map (Pi.evalMonoidHom f i) J ≤ H i
x : (i : η) → f i
hx : x ∈ J
i : η
hi : i ∈ I
⊢ x i ∈ (fun i => ((fun i => (H i).toSubmonoid) i).carrier) i

tactic: exact h i hi ⟨_, hx, rfl⟩
state_before: case mpr
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁶ : Group G
inst✝⁵ : Group G'
inst✝⁴ : Group G''
A : Type u_4
inst✝³ : AddGroup A
H✝ K : Subgroup G
k : Set G
N : Type u_5
inst✝² : Group N
P : Type u_6
inst✝¹ : Group P
η : Type u_7
f : η → Type u_8
inst✝ : (i : η) → Group (f i)
I : Set η
H : (i : η) → Subgroup (f i)
J : Subgroup ((i : η) → f i)
h : ∀ i ∈ I, map (Pi.evalMonoidHom f i) J ≤ H i
x : (i : η) → f i
hx : x ∈ J
i : η
hi : i ∈ I
⊢ x i ∈ (fun i => ((fun i => (H i).toSubmonoid) i).carrier) i
state_after: no goals