Theorem: project.rank_zero_IsRankedTree (Project/DeleteMin.lean)

State before:
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts✝ ts : List (BinTree α✝)
t✝ : BinTree α✝
a✝¹ : t✝.rank = n + 1
rt : IsRankedTree (n + 1 + 1) 0 ts
a✝ : IsBinTree t✝
⊢ False
Tactic:
cases rt with
| cons => 
  apply rank_zero_IsRankedTree
  assumption
State after:
no goals

State before:
case cons
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ False
Tactic:
apply rank_zero_IsRankedTree
State after:
case cons.a
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ IsRankedTree (?cons.n + 1) 0 ?cons.ts

case cons.n
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ ℕ

case cons.α
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ Type u_1

case cons.ts
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ List (BinTree ?cons.α)

State before:
case cons.a
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ IsRankedTree (?cons.n + 1) 0 ?cons.ts

case cons.n
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ ℕ

case cons.α
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ Type u_1

case cons.ts
α : Sort ?u.123130
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
n : ℕ
α✝ : Type u_1
ts : List (BinTree α✝)
t✝¹ : BinTree α✝
a✝⁴ : t✝¹.rank = n + 1
a✝³ : IsBinTree t✝¹
ts✝ : List (BinTree α✝)
t✝ : BinTree α✝
a✝² : IsBinTree t✝
a✝¹ : t✝.rank = n + 1 + 1
a✝ : IsRankedTree (n + 1 + 1 + 1) 0 ts✝
⊢ List (BinTree ?cons.α)
Tactic:
assumption
State after:
no goals