Theorem: Part.eq_of_chain
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: cases' ha with i ha
state_before: α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
ha : some a ∈ c
hb : some b ∈ c
⊢ a = b
state_after: case intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
hb : some b ∈ c
i : ℕ
ha : some a = c i
⊢ a = b

tactic: replace ha := ha.symm
state_before: case intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
hb : some b ∈ c
i : ℕ
ha : some a = c i
⊢ a = b
state_after: case intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
hb : some b ∈ c
i : ℕ
ha : c i = some a
⊢ a = b

tactic: cases' hb with j hb
state_before: case intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
hb : some b ∈ c
i : ℕ
ha : c i = some a
⊢ a = b
state_after: case intro.intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : c i = some a
j : ℕ
hb : some b = c j
⊢ a = b

tactic: replace hb := hb.symm
state_before: case intro.intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : c i = some a
j : ℕ
hb : some b = c j
⊢ a = b
state_after: case intro.intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : c i = some a
j : ℕ
hb : c j = some b
⊢ a = b

tactic: rw [eq_some_iff] at ha hb
state_before: case intro.intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : c i = some a
j : ℕ
hb : c j = some b
⊢ a = b
state_after: case intro.intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
⊢ a = b

tactic: rcases le_total i j with hij | hji
state_before: case intro.intro
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
⊢ a = b
state_after: case intro.intro.inl
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hij : i ≤ j
⊢ a = b

case intro.intro.inr
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hji : j ≤ i
⊢ a = b

tactic: have := c.monotone hij _ ha
state_before: case intro.intro.inl
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hij : i ≤ j
⊢ a = b
state_after: case intro.intro.inl
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hij : i ≤ j
this : a ∈ c j
⊢ a = b

tactic: apply mem_unique this hb
state_before: case intro.intro.inl
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hij : i ≤ j
this : a ∈ c j
⊢ a = b
state_after: no goals

tactic: have := c.monotone hji _ hb
state_before: case intro.intro.inr
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hji : j ≤ i
⊢ a = b
state_after: case intro.intro.inr
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hji : j ≤ i
this : b ∈ c i
⊢ a = b

tactic: apply Eq.symm
state_before: case intro.intro.inr
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hji : j ≤ i
this : b ∈ c i
⊢ a = b
state_after: case intro.intro.inr.h
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hji : j ≤ i
this : b ∈ c i
⊢ b = a

tactic: apply mem_unique this ha
state_before: case intro.intro.inr.h
α : Type u
β : Type v
γ : Type u_1
c : Chain (Part α)
a b : α
i : ℕ
ha : a ∈ c i
j : ℕ
hb : b ∈ c j
hji : j ≤ i
this : b ∈ c i
⊢ b = a
state_after: no goals