Theorem: Notes.insert_sorted_of_sorted (Notes4/IndPred2.lean)

State before:
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : r a a'
⊢ Sorted r (insert r a (a' :: as))
Tactic:
simp [insert, h']
State after:
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : r a a'
⊢ Sorted r (a :: a' :: as)

State before:
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : r a a'
⊢ Sorted r (a :: a' :: as)
Tactic:
apply longer h' h
State after:
no goals

State before:
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ Sorted r (insert r a (a' :: as))
Tactic:
simp [insert, h']
State after:
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ Sorted r (a' :: insert r a as)

State before:
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ Sorted r (a' :: insert r a as)
Tactic:
apply cons r
State after:
case h₁
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ Sorted r (insert r a as)

case h₃
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ r a' (insert r a as)[0]

case h₂
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ List.length (insert r a as) > 0

State before:
case h₁
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ Sorted r (insert r a as)
Tactic:
apply insert_sorted_of_sorted <| sorted_tail_of_sorted r a' as h
State after:
no goals

State before:
case h₃
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ r a' (insert r a as)[0]
Tactic:
apply ordered_cons_insert_of_unordered r h
State after:
case h₃
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ r a' a

State before:
case h₃
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ r a' a
Tactic:
apply asym
State after:
case h₃.a
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ ¬r a a'

State before:
case h₃.a
α : Type
r : α → α → Prop
inst✝¹ : DecidableRel r
a : α
l : List α
inst✝ : Asymmetric r
a' : α
as : List α
h : Sorted r (a' :: as)
h' : ¬r a a'
⊢ ¬r a a'
Tactic:
assumption
State after:
no goals