Theorem: SimpleGraph.triple_eq_triple_of_mem
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Counting.lean

tactic: simp only [Finset.Subset.antisymm_iff, subset_iff, mem_insert, mem_singleton, forall_eq_or_imp,
  forall_eq] at h
state_before: α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : Disjoint s t
hsu : Disjoint s u
htu : Disjoint t u
x₁ x₂ y₁ y₂ z₁ z₂ : α
h : {x₁, y₁, z₁} = {x₂, y₂, z₂}
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
⊢ (x₁, y₁, z₁) = (x₂, y₂, z₂)
state_after: α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : Disjoint s t
hsu : Disjoint s u
htu : Disjoint t u
x₁ x₂ y₁ y₂ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
h :
  ((x₁ = x₂ ∨ x₁ = y₂ ∨ x₁ = z₂) ∧ (y₁ = x₂ ∨ y₁ = y₂ ∨ y₁ = z₂) ∧ (z₁ = x₂ ∨ z₁ = y₂ ∨ z₁ = z₂)) ∧
    (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (y₂ = x₁ ∨ y₂ = y₁ ∨ y₂ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ (x₁, y₁, z₁) = (x₂, y₂, z₂)

tactic: rw [disjoint_left] at hst hsu htu
state_before: α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : Disjoint s t
hsu : Disjoint s u
htu : Disjoint t u
x₁ x₂ y₁ y₂ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
h :
  ((x₁ = x₂ ∨ x₁ = y₂ ∨ x₁ = z₂) ∧ (y₁ = x₂ ∨ y₁ = y₂ ∨ y₁ = z₂) ∧ (z₁ = x₂ ∨ z₁ = y₂ ∨ z₁ = z₂)) ∧
    (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (y₂ = x₁ ∨ y₂ = y₁ ∨ y₂ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ (x₁, y₁, z₁) = (x₂, y₂, z₂)
state_after: α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : ∀ ⦃a : α⦄, a ∈ s → a ∉ t
hsu : ∀ ⦃a : α⦄, a ∈ s → a ∉ u
htu : ∀ ⦃a : α⦄, a ∈ t → a ∉ u
x₁ x₂ y₁ y₂ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
h :
  ((x₁ = x₂ ∨ x₁ = y₂ ∨ x₁ = z₂) ∧ (y₁ = x₂ ∨ y₁ = y₂ ∨ y₁ = z₂) ∧ (z₁ = x₂ ∨ z₁ = y₂ ∨ z₁ = z₂)) ∧
    (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (y₂ = x₁ ∨ y₂ = y₁ ∨ y₂ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ (x₁, y₁, z₁) = (x₂, y₂, z₂)

tactic: rw [Prod.mk.inj_iff, Prod.mk.inj_iff]
state_before: α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : ∀ ⦃a : α⦄, a ∈ s → a ∉ t
hsu : ∀ ⦃a : α⦄, a ∈ s → a ∉ u
htu : ∀ ⦃a : α⦄, a ∈ t → a ∉ u
x₁ x₂ y₁ y₂ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
h :
  ((x₁ = x₂ ∨ x₁ = y₂ ∨ x₁ = z₂) ∧ (y₁ = x₂ ∨ y₁ = y₂ ∨ y₁ = z₂) ∧ (z₁ = x₂ ∨ z₁ = y₂ ∨ z₁ = z₂)) ∧
    (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (y₂ = x₁ ∨ y₂ = y₁ ∨ y₂ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ (x₁, y₁, z₁) = (x₂, y₂, z₂)
state_after: α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : ∀ ⦃a : α⦄, a ∈ s → a ∉ t
hsu : ∀ ⦃a : α⦄, a ∈ s → a ∉ u
htu : ∀ ⦃a : α⦄, a ∈ t → a ∉ u
x₁ x₂ y₁ y₂ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
h :
  ((x₁ = x₂ ∨ x₁ = y₂ ∨ x₁ = z₂) ∧ (y₁ = x₂ ∨ y₁ = y₂ ∨ y₁ = z₂) ∧ (z₁ = x₂ ∨ z₁ = y₂ ∨ z₁ = z₂)) ∧
    (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (y₂ = x₁ ∨ y₂ = y₁ ∨ y₂ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ x₁ = x₂ ∧ y₁ = y₂ ∧ z₁ = z₂

tactic: simp only [and_assoc, @or_left_comm _ (y₁ = y₂), @or_comm _ (z₁ = z₂),
  @or_left_comm _ (z₁ = z₂)] at h
state_before: α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : ∀ ⦃a : α⦄, a ∈ s → a ∉ t
hsu : ∀ ⦃a : α⦄, a ∈ s → a ∉ u
htu : ∀ ⦃a : α⦄, a ∈ t → a ∉ u
x₁ x₂ y₁ y₂ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
h :
  ((x₁ = x₂ ∨ x₁ = y₂ ∨ x₁ = z₂) ∧ (y₁ = x₂ ∨ y₁ = y₂ ∨ y₁ = z₂) ∧ (z₁ = x₂ ∨ z₁ = y₂ ∨ z₁ = z₂)) ∧
    (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (y₂ = x₁ ∨ y₂ = y₁ ∨ y₂ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ x₁ = x₂ ∧ y₁ = y₂ ∧ z₁ = z₂
state_after: α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : ∀ ⦃a : α⦄, a ∈ s → a ∉ t
hsu : ∀ ⦃a : α⦄, a ∈ s → a ∉ u
htu : ∀ ⦃a : α⦄, a ∈ t → a ∉ u
x₁ x₂ y₁ y₂ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
h :
  (x₁ = x₂ ∨ x₁ = y₂ ∨ x₁ = z₂) ∧
    (y₁ = y₂ ∨ y₁ = x₂ ∨ y₁ = z₂) ∧
      (z₁ = z₂ ∨ z₁ = x₂ ∨ z₁ = y₂) ∧
        (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (y₂ = x₁ ∨ y₂ = y₁ ∨ y₂ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ x₁ = x₂ ∧ y₁ = y₂ ∧ z₁ = z₂

tactic: rintro rfl
state_before: case refine_6
α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : ∀ ⦃a : α⦄, a ∈ s → a ∉ t
hsu : ∀ ⦃a : α⦄, a ∈ s → a ∉ u
htu : ∀ ⦃a : α⦄, a ∈ t → a ∉ u
x₁ x₂ y₁ y₂ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hy₂ : y₂ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
h :
  (x₁ = x₂ ∨ x₁ = y₂ ∨ x₁ = z₂) ∧
    (y₁ = y₂ ∨ y₁ = x₂ ∨ y₁ = z₂) ∧
      (z₁ = z₂ ∨ z₁ = x₂ ∨ z₁ = y₂) ∧
        (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (y₂ = x₁ ∨ y₂ = y₁ ∨ y₂ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ ¬z₁ = y₂
state_after: case refine_6
α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : ∀ ⦃a : α⦄, a ∈ s → a ∉ t
hsu : ∀ ⦃a : α⦄, a ∈ s → a ∉ u
htu : ∀ ⦃a : α⦄, a ∈ t → a ∉ u
x₁ x₂ y₁ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
hy₂ : z₁ ∈ t
h :
  (x₁ = x₂ ∨ x₁ = z₁ ∨ x₁ = z₂) ∧
    (y₁ = z₁ ∨ y₁ = x₂ ∨ y₁ = z₂) ∧
      (z₁ = z₂ ∨ z₁ = x₂ ∨ z₁ = z₁) ∧
        (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (z₁ = x₁ ∨ z₁ = y₁ ∨ z₁ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ False

tactic: solve_by_elim
state_before: case refine_6
α : Type u_1
G G' : SimpleGraph α
inst✝¹ : DecidableRel G.Adj
ε : ℝ
s t u : Finset α
inst✝ : DecidableEq α
hst : ∀ ⦃a : α⦄, a ∈ s → a ∉ t
hsu : ∀ ⦃a : α⦄, a ∈ s → a ∉ u
htu : ∀ ⦃a : α⦄, a ∈ t → a ∉ u
x₁ x₂ y₁ z₁ z₂ : α
hx₁ : x₁ ∈ s
hx₂ : x₂ ∈ s
hy₁ : y₁ ∈ t
hz₁ : z₁ ∈ u
hz₂ : z₂ ∈ u
hy₂ : z₁ ∈ t
h :
  (x₁ = x₂ ∨ x₁ = z₁ ∨ x₁ = z₂) ∧
    (y₁ = z₁ ∨ y₁ = x₂ ∨ y₁ = z₂) ∧
      (z₁ = z₂ ∨ z₁ = x₂ ∨ z₁ = z₁) ∧
        (x₂ = x₁ ∨ x₂ = y₁ ∨ x₂ = z₁) ∧ (z₁ = x₁ ∨ z₁ = y₁ ∨ z₁ = z₁) ∧ (z₂ = x₁ ∨ z₂ = y₁ ∨ z₂ = z₁)
⊢ False
state_after: no goals