Theorem: Batteries.LTCmp.eq_compareOfLessAndEq
File: .lake/packages/batteries/Batteries/Classes/Order.lean

tactic: simp [compareOfLessAndEq]
state_before: α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
⊢ cmp x y = compareOfLessAndEq x y
state_after: α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
⊢ cmp x y = if x < y then Ordering.lt else if x = y then Ordering.eq else Ordering.gt

tactic: split <;> rename_i h1 <;> [skip; split <;> rename_i h2]
state_before: α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
⊢ cmp x y = if x < y then Ordering.lt else if x = y then Ordering.eq else Ordering.gt
state_after: case isTrue
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : x < y
⊢ cmp x y = Ordering.lt

case isFalse.isTrue
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : x = y
⊢ cmp x y = Ordering.eq

case isFalse.isFalse
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : ¬x = y
⊢ cmp x y = Ordering.gt

tactic: exact LTCmp.cmp_iff_lt.2 h1
state_before: case isTrue
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : x < y
⊢ cmp x y = Ordering.lt
state_after: no goals

tactic: exact BEqCmp.cmp_iff_eq.2 h2
state_before: case isFalse.isTrue
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : x = y
⊢ cmp x y = Ordering.eq
state_after: no goals

tactic: cases e : cmp x y
state_before: case isFalse.isFalse
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : ¬x = y
⊢ cmp x y = Ordering.gt
state_after: case isFalse.isFalse.lt
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : ¬x = y
e : cmp x y = Ordering.lt
⊢ Ordering.lt = Ordering.gt

case isFalse.isFalse.eq
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : ¬x = y
e : cmp x y = Ordering.eq
⊢ Ordering.eq = Ordering.gt

case isFalse.isFalse.gt
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : ¬x = y
e : cmp x y = Ordering.gt
⊢ Ordering.gt = Ordering.gt

tactic: cases h1 (LTCmp.cmp_iff_lt.1 e)
state_before: case isFalse.isFalse.lt
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : ¬x = y
e : cmp x y = Ordering.lt
⊢ Ordering.lt = Ordering.gt
state_after: no goals

tactic: cases h2 (BEqCmp.cmp_iff_eq.1 e)
state_before: case isFalse.isFalse.eq
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : ¬x = y
e : cmp x y = Ordering.eq
⊢ Ordering.eq = Ordering.gt
state_after: no goals

tactic: rfl
state_before: case isFalse.isFalse.gt
α : Type u_1
cmp : α → α → Ordering
inst✝⁶ : LT α
inst✝⁵ : DecidableEq α
inst✝⁴ : BEq α
inst✝³ : LawfulBEq α
inst✝² : BEqCmp cmp
inst✝¹ : LTCmp cmp
x y : α
inst✝ : Decidable (x < y)
h1 : ¬x < y
h2 : ¬x = y
e : cmp x y = Ordering.gt
⊢ Ordering.gt = Ordering.gt
state_after: no goals