Theorem: Fin.predAbove_right_monotone
File: Mathlib/Order/Fin.lean

tactic: dsimp [predAbove]
state_before: m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
⊢ p.predAbove a ≤ p.predAbove b
state_after: m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
⊢ (if h : p.castSucc < a then a.pred ⋯ else a.castPred ⋯) ≤ if h : p.castSucc < b then b.pred ⋯ else b.castPred ⋯

tactic: split_ifs with ha hb hb
state_before: m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
⊢ (if h : p.castSucc < a then a.pred ⋯ else a.castPred ⋯) ≤ if h : p.castSucc < b then b.pred ⋯ else b.castPred ⋯
state_after: case pos
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : p.castSucc < a
hb : p.castSucc < b
⊢ a.pred ⋯ ≤ b.pred ⋯

case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : p.castSucc < a
hb : ¬p.castSucc < b
⊢ a.pred ⋯ ≤ b.castPred ⋯

case pos
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : p.castSucc < b
⊢ a.castPred ⋯ ≤ b.pred ⋯

case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : ¬p.castSucc < b
⊢ a.castPred ⋯ ≤ b.castPred ⋯

tactic: all_goals simp only [le_iff_val_le_val, coe_pred]
state_before: case pos
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : p.castSucc < a
hb : p.castSucc < b
⊢ a.pred ⋯ ≤ b.pred ⋯

case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : p.castSucc < a
hb : ¬p.castSucc < b
⊢ a.pred ⋯ ≤ b.castPred ⋯

case pos
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : p.castSucc < b
⊢ a.castPred ⋯ ≤ b.pred ⋯

case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : ¬p.castSucc < b
⊢ a.castPred ⋯ ≤ b.castPred ⋯
state_after: case pos
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : p.castSucc < a
hb : p.castSucc < b
⊢ ↑a - 1 ≤ ↑b - 1

case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : p.castSucc < a
hb : ¬p.castSucc < b
⊢ ↑a - 1 ≤ ↑(b.castPred ⋯)

case pos
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : p.castSucc < b
⊢ ↑(a.castPred ⋯) ≤ ↑b - 1

case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : ¬p.castSucc < b
⊢ ↑(a.castPred ⋯) ≤ ↑(b.castPred ⋯)

tactic: simp only [le_iff_val_le_val, coe_pred]
state_before: case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : ¬p.castSucc < b
⊢ a.castPred ⋯ ≤ b.castPred ⋯
state_after: case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : ¬p.castSucc < b
⊢ ↑(a.castPred ⋯) ≤ ↑(b.castPred ⋯)

tactic: exact pred_le_pred H
state_before: case pos
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : p.castSucc < a
hb : p.castSucc < b
⊢ ↑a - 1 ≤ ↑b - 1
state_after: no goals

tactic: calc
  _ ≤ _ := Nat.pred_le _
  _ ≤ _ := H
state_before: case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : p.castSucc < a
hb : ¬p.castSucc < b
⊢ ↑a - 1 ≤ ↑(b.castPred ⋯)
state_after: no goals

tactic: exact le_pred_of_lt ((not_lt.mp ha).trans_lt hb)
state_before: case pos
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : p.castSucc < b
⊢ ↑(a.castPred ⋯) ≤ ↑b - 1
state_after: no goals

tactic: exact H
state_before: case neg
m n : ℕ
p✝ : Fin (n + 1)
i j p : Fin n
a b : Fin (n + 1)
H : a ≤ b
ha : ¬p.castSucc < a
hb : ¬p.castSucc < b
⊢ ↑(a.castPred ⋯) ≤ ↑(b.castPred ⋯)
state_after: no goals