α : Type u_1
a b : α
as bs : Array α
h : List.concat as.data a = List.concat bs.data b
⊢ as = bs ∧ a = b
α : Type u_1
a b : α
as bs : Array α
h : push as a = push bs b
⊢ as = bs ∧ a = b
simp [push] at h
α : Type u_1
a b : α
as bs : Array α
h : List.concat as.data a = List.concat bs.data b
h₁ : as.data = bs.data
h₂ : a = b
⊢ as = bs ∧ a = b
α : Type u_1
a b : α
as bs : Array α
h : List.concat as.data a = List.concat bs.data b
⊢ as = bs ∧ a = b
have ⟨h₁, h₂⟩ := List.of_concat_eq_concat h
case mk
α : Type u_1
a b : α
bs : Array α
h₂ : a = b
data✝ : List α
h : List.concat { data := data✝ }.data a = List.concat bs.data b
h₁ : { data := data✝ }.data = bs.data
⊢ { data := data✝ } = bs ∧ a = b
α : Type u_1
a b : α
as bs : Array α
h : List.concat as.data a = List.concat bs.data b
h₁ : as.data = bs.data
h₂ : a = b
⊢ as = bs ∧ a = b
cases as
case mk.mk
α : Type u_1
a b : α
h₂ : a = b
data✝¹ data✝ : List α
h : List.concat { data := data✝¹ }.data a = List.concat { data := data✝ }.data b
h₁ : { data := data✝¹ }.data = { data := data✝ }.data
⊢ { data := data✝¹ } = { data := data✝ } ∧ a = b
case mk
α : Type u_1
a b : α
bs : Array α
h₂ : a = b
data✝ : List α
h : List.concat { data := data✝ }.data a = List.concat bs.data b
h₁ : { data := data✝ }.data = bs.data
⊢ { data := data✝ } = bs ∧ a = b
cases bs
no goals
case mk.mk
α : Type u_1
a b : α
h₂ : a = b
data✝¹ data✝ : List α
h : List.concat { data := data✝¹ }.data a = List.concat { data := data✝ }.data b
h₁ : { data := data✝¹ }.data = { data := data✝ }.data
⊢ { data := data✝¹ } = { data := data✝ } ∧ a = b
simp_all