@@ -529,9 +529,8 @@ attribute [Std.Internal.tree_tac] and_true true_and and_self heq_eq_eq inner.inj
529529theorem balance!_eq_balanceₘ {k v} {l r : Impl α β} (hlb : l.Balanced) (hrb : r.Balanced)
530530 (hlr : BalanceLErasePrecond l.size r.size ∨ BalanceLErasePrecond r.size l.size) :
531531 balance! k v l r = balanceₘ k v l r := by
532- set_option tactic.fun_induction.unfolding false in
533532 fun_cases balance!
534- all_goals dsimp only [balance!, balanceₘ]
533+ all_goals dsimp only [balanceₘ]
535534 · rfl
536535 · split <;> simp_all [Std.Internal.tree_tac]
537536 · split <;> simp_all only [Std.Internal.tree_tac]
@@ -579,7 +578,7 @@ theorem balance!_eq_balanceₘ {k v} {l r : Impl α β} (hlb : l.Balanced) (hrb
579578 omega
580579 · rw [rotateL]
581580 repeat simp_all only [Std.Internal.tree_tac, dite_true, ite_false, ite_true, Nat.not_lt]
582- rw [if_neg (by omega), if_neg (by omega), if_neg ( by omega) ]
581+ rw [if_neg (by omega), if_neg (by omega)]
583582 simp only [Std.Internal.tree_tac, Nat.add_right_cancel_iff] at *
584583 omega
585584 · exfalso
@@ -651,45 +650,30 @@ theorem balanced_rotateL (k v l rs rk rv rl rr) (hl : l.Balanced)
651650 (hlr : BalanceLErasePrecond l.size rs ∨ BalanceLErasePrecond rs l.size)
652651 (hh : rs > delta * l.size) :
653652 (rotateL k v l rk rv rl rr : Impl α β).Balanced := by
654- set_option tactic.fun_induction.unfolding false in
655- fun_cases rotateL k v l rk rv rl rr <;> dsimp only [rotateL]
656- · split
657- · next h =>
658- exact balanced_singleL _ _ _ _ _ _ _ _ hl hr hlr hh h
659- · contradiction
660- · rw [if_neg ‹_›]
661- tree_tac
662- · rw [if_neg ‹_›]
663- exact balanced_doubleL k v _ _ _ _ _ _ _ _ _ _ hl hr hlr hh ‹_›
653+ fun_cases rotateL
654+ · exact balanced_singleL _ _ _ _ _ _ _ _ hl hr hlr hh ‹_›
655+ · tree_tac
656+ · exact balanced_doubleL k v _ _ _ _ _ _ _ _ _ _ hl hr hlr hh ‹_›
664657
665658theorem balanced_rotateR (k v ls lk lv ll lr r) (hl : (Impl.inner ls lk lv ll lr).Balanced)
666659 (hr : r.Balanced) (hlr : BalanceLErasePrecond ls r.size ∨ BalanceLErasePrecond r.size ls)
667660 (hh : ls > delta * r.size) :
668661 (rotateR k v lk lv ll lr r : Impl α β).Balanced := by
669- set_option tactic.fun_induction.unfolding false in
670- fun_cases rotateR k v lk lv ll lr r <;> dsimp only [rotateR]
671- · split
672- · next h =>
673- exact balanced_singleR k v _ _ _ _ _ _ hl hr hlr hh h
674- · contradiction
675- · rw [if_neg ‹_›]
676- tree_tac
677- · rw [if_neg ‹_›]
678- exact balanced_doubleR k v _ _ _ _ _ _ _ _ _ _ hl hr hlr hh ‹_›
662+ fun_cases rotateR
663+ · exact balanced_singleR k v _ _ _ _ _ _ hl hr hlr hh ‹_›
664+ · tree_tac
665+ · exact balanced_doubleR k v _ _ _ _ _ _ _ _ _ _ hl hr hlr hh ‹_›
679666
680667theorem balanceL_eq_balanceLErase {k : α} {v : β k} {l r : Impl α β} {hlb hrb hlr} :
681668 balanceL k v l r hlb hrb hlr = balanceLErase k v l r hlb hrb hlr.erase := by
682- set_option tactic.fun_induction.unfolding false in
683- fun_cases balanceL k v l r hlb hrb hlr
684- all_goals dsimp only [balanceL, balanceLErase]
685- split
686- · split <;> contradiction
687- · rfl
669+ fun_cases balanceL
670+ all_goals dsimp only [balanceLErase]
671+ all_goals simp only [↓reduceDIte, ↓reduceIte, *]
688672
689673theorem balanceLErase_eq_balanceL! {k : α} {v : β k} {l r : Impl α β} {hlb hrb hlr} :
690674 balanceLErase k v l r hlb hrb hlr = balanceL! k v l r := by
691- fun_cases balanceL! k v l r
692- all_goals dsimp only [balanceLErase, balanceL! ]
675+ fun_cases balanceL!
676+ all_goals dsimp only [balanceLErase]
693677 all_goals simp only [*]
694678 all_goals dsimp only [dreduceDIte, dreduceIte]
695679 all_goals contradiction
@@ -698,26 +682,20 @@ theorem balanceL!_eq_balance! {k : α} {v : β k} {l r : Impl α β} (hlb : l.Ba
698682 (hrb : r.Balanced) (hlr : BalanceLErasePrecond l.size r.size) :
699683 balanceL! k v l r = balance! k v l r := by
700684 fun_cases balance!
701- all_goals dsimp only [balanceL!, balance! ]
685+ all_goals dsimp only [balanceL!]
702686 all_goals try simp only [*]
703- all_goals try dsimp only [dreduceDIte, dreduceIte]
704687 all_goals try rfl
705- all_goals try contradiction
706688 all_goals try (exfalso; tree_tac; done)
707689 congr; tree_tac
708690
709691theorem balanceR_eq_balanceRErase {k : α} {v : β k} {l r : Impl α β} {hlb hrb hlr} :
710692 balanceR k v l r hlb hrb hlr = balanceRErase k v l r hlb hrb hlr.erase := by
711- set_option tactic.fun_induction.unfolding false in
712- fun_cases balanceR k v l r hlb hrb hlr
713- all_goals dsimp only [balanceR, balanceRErase]
714- split
715- · split <;> contradiction
716- · rfl
693+ fun_cases balanceR <;>
694+ simp only [balanceRErase, ↓reduceDIte, ↓reduceIte, *]
717695
718696theorem balanceRErase_eq_balanceR! {k : α} {v : β k} {l r : Impl α β} {hlb hrb hlr} :
719697 balanceRErase k v l r hlb hrb hlr = balanceR! k v l r := by
720- fun_cases balanceR! k v l r
698+ fun_cases balanceR!
721699 all_goals dsimp only [balanceRErase, balanceR!]
722700 all_goals simp only [*]
723701 all_goals dsimp only [dreduceDIte, dreduceIte]
@@ -726,22 +704,16 @@ theorem balanceRErase_eq_balanceR! {k : α} {v : β k} {l r : Impl α β} {hlb h
726704theorem balanceR!_eq_balance! {k : α} {v : β k} {l r : Impl α β} (hlb : l.Balanced)
727705 (hrb : r.Balanced) (hlr : BalanceLErasePrecond r.size l.size) :
728706 balanceR! k v l r = balance! k v l r := by
729- fun_cases balance! k v l r
730- all_goals dsimp only [balanceR!, balance!]
731- all_goals try simp only [*]
732- all_goals try dsimp only [dreduceDIte, dreduceIte]
733- all_goals try rfl
734- all_goals try contradiction
707+ fun_cases balance!
708+ all_goals dsimp only [balanceR!]
735709 all_goals try (exfalso; tree_tac; done)
736710 congr; tree_tac
737711
738712theorem balance_eq_balance! {k : α} {v : β k} {l r : Impl α β} {hlb hrb hlr} :
739713 balance k v l r hlb hrb hlr = balance! k v l r := by
740- set_option tactic.fun_induction.unfolding false in
741- fun_cases balance! k v l r
742- all_goals dsimp only [balance, balance!]
743- all_goals simp only [*]
744- all_goals dsimp only [dreduceDIte]
714+ fun_cases balance!
715+ all_goals dsimp only [balance]
716+ all_goals simp only [↓reduceDIte, ↓reduceIte, *]
745717 all_goals contradiction
746718
747719theorem balance_eq_inner [Ord α] {sz k v} {l r : Impl α β}
0 commit comments