Theorem: Ordinal.lift_down'
File: Mathlib/SetTheory/Ordinal/Basic.lean

Proof steps:
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
e' : Cardinal.lift.{v, u} #α = (type s).card
⊢ ∃ a', lift.{v, u} a' = type s
state_after: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
e' : Nonempty (α ≃ β)
⊢ ∃ a', lift.{v, u} a' = type s
tactic: rw [card_type, ← Cardinal.lift_id'.{max u v, u} #β, ← Cardinal.lift_umax.{u, v},
          lift_mk_eq.{u, max u v, max u v}] at e'
state_before: α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
e' : Nonempty (α ≃ β)
⊢ ∃ a', lift.{v, u} a' = type s
state_after: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
⊢ ∃ a', lift.{v, u} a' = type s
tactic: cases' e' with f
state_before: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
⊢ ∃ a', lift.{v, u} a' = type s
state_after: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
g : ⇑f ⁻¹'o s ≃r s
⊢ ∃ a', lift.{v, u} a' = type s
tactic: have g := RelIso.preimage f s
state_before: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
g : ⇑f ⁻¹'o s ≃r s
⊢ ∃ a', lift.{v, u} a' = type s
state_after: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
g : ⇑f ⁻¹'o s ≃r s
this : IsWellOrder α (⇑f ⁻¹'o s)
⊢ ∃ a', lift.{v, u} a' = type s
tactic: haveI := (g : f ⁻¹'o s ↪r s).isWellOrder
state_before: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
g : ⇑f ⁻¹'o s ≃r s
this : IsWellOrder α (⇑f ⁻¹'o s)
⊢ ∃ a', lift.{v, u} a' = type s
state_after: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
g : ⇑f ⁻¹'o s ≃r s
this✝ : IsWellOrder α (⇑f ⁻¹'o s)
this : lift.{max u v, u} (type (⇑f ⁻¹'o s)) = lift.{max u v, max u v} (type s)
⊢ ∃ a', lift.{v, u} a' = type s
tactic: have := lift_type_eq.{u, max u v, max u v}.2 ⟨g⟩
state_before: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
g : ⇑f ⁻¹'o s ≃r s
this✝ : IsWellOrder α (⇑f ⁻¹'o s)
this : lift.{max u v, u} (type (⇑f ⁻¹'o s)) = lift.{max u v, max u v} (type s)
⊢ ∃ a', lift.{v, u} a' = type s
state_after: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
g : ⇑f ⁻¹'o s ≃r s
this✝ : IsWellOrder α (⇑f ⁻¹'o s)
this : lift.{v, u} (type (⇑f ⁻¹'o s)) = type s
⊢ ∃ a', lift.{v, u} a' = type s
tactic: rw [lift_id, lift_umax.{u, v}] at this
state_before: case intro
α✝ : Type u
β✝ : Type u_1
γ : Type u_2
r : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
a : Cardinal.{u}
b : Ordinal.{max u v}
h : b.card ≤ Cardinal.lift.{v, u} a
c : Cardinal.{u}
e : Cardinal.lift.{v, u} c = b.card
α : Type u
β : Type (max u v)
s : β → β → Prop
x✝ : IsWellOrder β s
f : α ≃ β
g : ⇑f ⁻¹'o s ≃r s
this✝ : IsWellOrder α (⇑f ⁻¹'o s)
this : lift.{v, u} (type (⇑f ⁻¹'o s)) = type s
⊢ ∃ a', lift.{v, u} a' = type s
state_after: no goals
tactic: exact ⟨_, this⟩