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

tactic: cases' hcard with hcard hcard
state_before: ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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.843508
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 : ι
w : NeWord H i j
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: obtain ⟨i, h1, h2⟩ := Cardinal.three_le hcard i j
state_before: case inl
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#ι)
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: exact lift_word_prod_nontrivial_of_other_i f X hXnonempty hXdisj hpp w h1 h2
state_before: case inl.intro.intro
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i✝ j
hcard : 3 ≤ (#ι)
i : ι
h1 : i ≠ i✝
h2 : i ≠ j
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: cases' hcard with k hcard
state_before: case inr
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : ∃ i, 3 ≤ (#H i)
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: by_cases hh : i = k <;> by_cases hl : j = k
state_before: case inr.intro
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: subst hh
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : i = k
hl : j = k
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: subst hl
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#H i)
hl : j = i
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: exact lift_word_prod_nontrivial_of_head_eq_last f X hXnonempty hXdisj hpp w
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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
j : ι
w : NeWord H j j
hcard : 3 ≤ (#H j)
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: subst hh
state_before: case neg
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : i = k
hl : ¬j = k
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: change j ≠ i at hl
state_before: case neg
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#H i)
hl : ¬j = i
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: exact lift_word_prod_nontrivial_of_head_card f X hXnonempty hXdisj hpp w hcard hl.symm
state_before: case neg
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#H i)
hl : j ≠ i
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: subst hl
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : ¬i = k
hl : j = k
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: change i ≠ j at hh
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#H j)
hh : ¬i = j
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: have : lift f w.inv.prod ≠ 1 :=
  lift_word_prod_nontrivial_of_head_card f X hXnonempty hXdisj hpp w.inv hcard hh.symm
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#H j)
hh : i ≠ j
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: intro heq
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#H j)
hh : i ≠ j
this : ↑(↑lift f) (NeWord.prod (NeWord.inv w)) ≠ 1
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: apply this
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#H j)
hh : i ≠ j
this : ↑(↑lift f) (NeWord.prod (NeWord.inv w)) ≠ 1
heq : ↑(↑lift f) (NeWord.prod w) = 1
⊢ False

tactic: simpa using heq
state_before: case pos
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
hcard : 3 ≤ (#H j)
hh : i ≠ j
this : ↑(↑lift f) (NeWord.prod (NeWord.inv w)) ≠ 1
heq : ↑(↑lift f) (NeWord.prod w) = 1
⊢ ↑(↑lift f) (NeWord.prod (NeWord.inv w)) = 1

tactic: change i ≠ k at hh
state_before: case neg
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : ¬i = k
hl : ¬j = k
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: change j ≠ k at hl
state_before: case neg
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hl : ¬j = k
hh : i ≠ k
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: obtain ⟨h, hn1, -⟩ := Cardinal.three_le hcard 1 1
state_before: case neg
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : i ≠ k
hl : j ≠ k
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: let w' : NeWord H k k :=
  NeWord.append (NeWord.append (NeWord.singleton h hn1) hh.symm w) hl
    (NeWord.singleton h⁻¹ (inv_ne_one.mpr hn1))
state_before: case neg.intro.intro
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : i ≠ k
hl : j ≠ k
h : H k
hn1 : h ≠ 1
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: have hw' : lift f w'.prod ≠ 1 :=
  lift_word_prod_nontrivial_of_head_eq_last f X hXnonempty hXdisj hpp w'
state_before: case neg.intro.intro
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : i ≠ k
hl : j ≠ k
h : H k
hn1 : h ≠ 1
w' : NeWord H k k :=
  NeWord.append (NeWord.append (NeWord.singleton h hn1) (_ : k ≠ i) w) hl (NeWord.singleton h⁻¹ (_ : h⁻¹ ≠ 1))
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: intro heq1
state_before: case neg.intro.intro
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : i ≠ k
hl : j ≠ k
h : H k
hn1 : h ≠ 1
w' : NeWord H k k :=
  NeWord.append (NeWord.append (NeWord.singleton h hn1) (_ : k ≠ i) w) hl (NeWord.singleton h⁻¹ (_ : h⁻¹ ≠ 1))
hw' : ↑(↑lift f) (NeWord.prod w') ≠ 1
⊢ ↑(↑lift f) (NeWord.prod w) ≠ 1

tactic: apply hw'
state_before: case neg.intro.intro
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : i ≠ k
hl : j ≠ k
h : H k
hn1 : h ≠ 1
w' : NeWord H k k :=
  NeWord.append (NeWord.append (NeWord.singleton h hn1) (_ : k ≠ i) w) hl (NeWord.singleton h⁻¹ (_ : h⁻¹ ≠ 1))
hw' : ↑(↑lift f) (NeWord.prod w') ≠ 1
heq1 : ↑(↑lift f) (NeWord.prod w) = 1
⊢ False

tactic: simp [heq1]
state_before: case neg.intro.intro
ι : Type u_1
M : ι → Type ?u.842716
inst✝⁴ : (i : ι) → Monoid (M i)
N : Type ?u.842727
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
α : Type ?u.843508
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 : ι
w : NeWord H i j
k : ι
hcard : 3 ≤ (#H k)
hh : i ≠ k
hl : j ≠ k
h : H k
hn1 : h ≠ 1
w' : NeWord H k k :=
  NeWord.append (NeWord.append (NeWord.singleton h hn1) (_ : k ≠ i) w) hl (NeWord.singleton h⁻¹ (_ : h⁻¹ ≠ 1))
hw' : ↑(↑lift f) (NeWord.prod w') ≠ 1
heq1 : ↑(↑lift f) (NeWord.prod w) = 1
⊢ ↑(↑lift f) (NeWord.prod w') = 1