no goals
α : Type u_1
p : α → Option α
b : α
l : List α
a a' : α
al : a ∈ b :: l
pa : p a = some a'
b' : α
pb : p b = some b'
⊢ b :: l = [] ++ b :: l ∧ replaceF p (b :: l) = [] ++ b' :: l
simp [pb]
no goals
α : Type u_1
p : α → Option α
b✝ : α
l : List α
a a' : α
al✝ : a ∈ b✝ :: l
pa : p a = some a'
b : α
al : Mem a l
pb : p b = none
c c' : α
l₁ l₂ : List α
h₁ : ∀ (b : α), b ∈ l₁ → p b = none
h₂ : p c = some c'
h₃ : l = l₁ ++ c :: l₂
h₄ : replaceF p l = l₁ ++ c' :: l₂
⊢ b :: l = b :: l₁ ++ c :: l₂
rw [h₃, cons_append]
no goals
α : Type u_1
p : α → Option α
b✝ : α
l : List α
a a' : α
al✝ : a ∈ b✝ :: l
pa : p a = some a'
b : α
al : Mem a l
pb : p b = none
c c' : α
l₁ l₂ : List α
h₁ : ∀ (b : α), b ∈ l₁ → p b = none
h₂ : p c = some c'
h₃ : l = l₁ ++ c :: l₂
h₄ : replaceF p l = l₁ ++ c' :: l₂
⊢ replaceF p (b :: l) = b :: l₁ ++ c' :: l₂
simp [pb, h₄]