Theorem: FreeProduct.lift_word_prod_nontrivial_of_other_i
File: Mathlib/GroupTheory/FreeProduct.lean

tactic: intro heq1
state_before: ι : Type u_1
M : ι → Type ?u.747617
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.747628
inst✝³ : Monoid N
hnontriv : Nontrivial ι
G : Type u_3
inst✝² : Group G
H : ι → Type u_2
inst✝¹ : (i : ι) → Group (H i)
f : (i : ι) → H i →* G
hcard : 3 ≤ (#ι) ∨ ∃ i, 3 ≤ (#H i)
α : Type ?u.748409
inst✝ : MulAction G α
X : ι → Set α
hXnonempty : ∀ (i : ι), Set.Nonempty (X i)
hXdisj : Pairwise fun i j => Disjoint (X i) (X j)
hpp : Pairwise fun i j => ∀ (h : H i), h ≠ 1 → ↑(f i) h • X j ⊆ X i
i j k : ι
w : NeWord H i j
hhead : k ≠ i
hlast : k ≠ j
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: have : X k ⊆ X i := by simpa [heq1] using lift_word_ping_pong f X hpp w hlast.symm
state_before: ι : Type u_1
M : ι → Type ?u.747617
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.747628
inst✝³ : Monoid N
hnontriv : Nontrivial ι
G : Type u_3
inst✝² : Group G
H : ι → Type u_2
inst✝¹ : (i : ι) → Group (H i)
f : (i : ι) → H i →* G
hcard : 3 ≤ (#ι) ∨ ∃ i, 3 ≤ (#H i)
α : Type ?u.748409
inst✝ : MulAction G α
X : ι → Set α
hXnonempty : ∀ (i : ι), Set.Nonempty (X i)
hXdisj : Pairwise fun i j => Disjoint (X i) (X j)
hpp : Pairwise fun i j => ∀ (h : H i), h ≠ 1 → ↑(f i) h • X j ⊆ X i
i j k : ι
w : NeWord H i j
hhead : k ≠ i
hlast : k ≠ j
heq1 : ↑(↑lift f) (NeWord.prod w) = 1
⊢ False

tactic: obtain ⟨x, hx⟩ := hXnonempty k
state_before: ι : Type u_1
M : ι → Type ?u.747617
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.747628
inst✝³ : Monoid N
hnontriv : Nontrivial ι
G : Type u_3
inst✝² : Group G
H : ι → Type u_2
inst✝¹ : (i : ι) → Group (H i)
f : (i : ι) → H i →* G
hcard : 3 ≤ (#ι) ∨ ∃ i, 3 ≤ (#H i)
α : Type ?u.748409
inst✝ : MulAction G α
X : ι → Set α
hXnonempty : ∀ (i : ι), Set.Nonempty (X i)
hXdisj : Pairwise fun i j => Disjoint (X i) (X j)
hpp : Pairwise fun i j => ∀ (h : H i), h ≠ 1 → ↑(f i) h • X j ⊆ X i
i j k : ι
w : NeWord H i j
hhead : k ≠ i
hlast : k ≠ j
heq1 : ↑(↑lift f) (NeWord.prod w) = 1
this : X k ⊆ X i
⊢ False

tactic: exact (hXdisj hhead).le_bot ⟨hx, this hx⟩
state_before: case intro
ι : Type u_1
M : ι → Type ?u.747617
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.747628
inst✝³ : Monoid N
hnontriv : Nontrivial ι
G : Type u_3
inst✝² : Group G
H : ι → Type u_2
inst✝¹ : (i : ι) → Group (H i)
f : (i : ι) → H i →* G
hcard : 3 ≤ (#ι) ∨ ∃ i, 3 ≤ (#H i)
α : Type ?u.748409
inst✝ : MulAction G α
X : ι → Set α
hXnonempty : ∀ (i : ι), Set.Nonempty (X i)
hXdisj : Pairwise fun i j => Disjoint (X i) (X j)
hpp : Pairwise fun i j => ∀ (h : H i), h ≠ 1 → ↑(f i) h • X j ⊆ X i
i j k : ι
w : NeWord H i j
hhead : k ≠ i
hlast : k ≠ j
heq1 : ↑(↑lift f) (NeWord.prod w) = 1
this : X k ⊆ X i
x : α
hx : x ∈ X k
⊢ False

tactic: simpa [heq1] using lift_word_ping_pong f X hpp w hlast.symm
state_before: ι : Type u_1
M : ι → Type ?u.747617
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.747628
inst✝³ : Monoid N
hnontriv : Nontrivial ι
G : Type u_3
inst✝² : Group G
H : ι → Type u_2
inst✝¹ : (i : ι) → Group (H i)
f : (i : ι) → H i →* G
hcard : 3 ≤ (#ι) ∨ ∃ i, 3 ≤ (#H i)
α : Type ?u.748409
inst✝ : MulAction G α
X : ι → Set α
hXnonempty : ∀ (i : ι), Set.Nonempty (X i)
hXdisj : Pairwise fun i j => Disjoint (X i) (X j)
hpp : Pairwise fun i j => ∀ (h : H i), h ≠ 1 → ↑(f i) h • X j ⊆ X i
i j k : ι
w : NeWord H i j
hhead : k ≠ i
hlast : k ≠ j
heq1 : ↑(↑lift f) (NeWord.prod w) = 1
⊢ X k ⊆ X i