α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
⊢ Acc (fun x x_1 => x < x_1) (↑WithBot.toDual a) → Acc (fun x x_1 => x > x_1) a
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
this : Acc (fun x x_1 => x < x_1) (↑WithBot.toDual a)
⊢ Acc (fun x x_1 => x > x_1) a
revert this
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
b : WithTop αᵒᵈ
ha : ↑WithBot.toDual a = b
⊢ Acc (fun x x_1 => x < x_1) b → Acc (fun x x_1 => x > x_1) a
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
⊢ Acc (fun x x_1 => x < x_1) (↑WithBot.toDual a) → Acc (fun x x_1 => x > x_1) a
generalize ha : WithBot.toDual a = b
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
b : WithTop αᵒᵈ
ha : ↑WithBot.toDual a = b
ac : Acc (fun x x_1 => x < x_1) b
⊢ Acc (fun x x_1 => x > x_1) a
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
b : WithTop αᵒᵈ
ha : ↑WithBot.toDual a = b
⊢ Acc (fun x x_1 => x < x_1) b → Acc (fun x x_1 => x > x_1) a
intro ac
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
b : WithTop αᵒᵈ
ha : ↑WithBot.toDual a = b
ac : Acc (fun x x_1 => x < x_1) b
⊢ Acc (fun x x_1 => x > x_1) a
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
b : WithTop αᵒᵈ
ha : ↑WithBot.toDual a = b
ac : Acc (fun x x_1 => x < x_1) b
⊢ Acc (fun x x_1 => x > x_1) a
dsimp at ac
case intro
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a✝ : WithBot α
b : WithTop αᵒᵈ
ha✝ : ↑WithBot.toDual a✝ = b
x✝ : WithTop αᵒᵈ
H : ∀ (y : WithTop αᵒᵈ), y < x✝ → Acc (fun x x_1 => x < x_1) y
IH : ∀ (y : WithTop αᵒᵈ), y < x✝ → ∀ (a : WithBot α), ↑WithBot.toDual a = y → Acc (fun x x_1 => x > x_1) a
a : WithBot α
ha : ↑WithBot.toDual a = x✝
⊢ Acc (fun x x_1 => x > x_1) a
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
b : WithTop αᵒᵈ
ha : ↑WithBot.toDual a = b
ac : Acc (fun x x_1 => x < x_1) b
⊢ Acc (fun x x_1 => x > x_1) a
induction' ac with _ H IH generalizing a
case intro
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a✝ : WithBot α
b : WithTop αᵒᵈ
ha : ↑WithBot.toDual a✝ = b
a : WithBot α
H : ∀ (y : WithTop αᵒᵈ), y < ↑WithBot.toDual a → Acc (fun x x_1 => x < x_1) y
IH :
  ∀ (y : WithTop αᵒᵈ), y < ↑WithBot.toDual a → ∀ (a : WithBot α), ↑WithBot.toDual a = y → Acc (fun x x_1 => x > x_1) a
⊢ Acc (fun x x_1 => x > x_1) a
case intro
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a✝ : WithBot α
b : WithTop αᵒᵈ
ha✝ : ↑WithBot.toDual a✝ = b
x✝ : WithTop αᵒᵈ
H : ∀ (y : WithTop αᵒᵈ), y < x✝ → Acc (fun x x_1 => x < x_1) y
IH : ∀ (y : WithTop αᵒᵈ), y < x✝ → ∀ (a : WithBot α), ↑WithBot.toDual a = y → Acc (fun x x_1 => x > x_1) a
a : WithBot α
ha : ↑WithBot.toDual a = x✝
⊢ Acc (fun x x_1 => x > x_1) a
subst ha
no goals
case intro
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a✝ : WithBot α
b : WithTop αᵒᵈ
ha : ↑WithBot.toDual a✝ = b
a : WithBot α
H : ∀ (y : WithTop αᵒᵈ), y < ↑WithBot.toDual a → Acc (fun x x_1 => x < x_1) y
IH :
  ∀ (y : WithTop αᵒᵈ), y < ↑WithBot.toDual a → ∀ (a : WithBot α), ↑WithBot.toDual a = y → Acc (fun x x_1 => x > x_1) a
⊢ Acc (fun x x_1 => x > x_1) a
exact ⟨_, fun a' h => IH (WithBot.toDual a') (toDual_lt_toDual.mpr h) _ rfl⟩
no goals
α : Type u_1
β : Type ?u.121527
γ : Type ?u.121530
δ : Type ?u.121533
inst✝ : Preorder α
h : WellFounded fun x x_1 => x > x_1
a : WithBot α
⊢ WellFounded fun x x_1 => x < x_1
convert h using 1