Theorem: RelIso.cof_le_lift
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rw [Order.cof, Order.cof, lift_sInf, lift_sInf,
  le_csInf_iff'' ((Order.cof_nonempty s).image _)]
state_before: α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
⊢ Cardinal.lift.{max u v, u} (cof r) ≤ Cardinal.lift.{max u v, v} (cof s)
state_after: α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
⊢ ∀ b ∈ Cardinal.lift.{max u v, v} '' {c | ∃ S, (∀ (a : β), ∃ b ∈ S, s a b) ∧ #↑S = c},
    sInf (Cardinal.lift.{max u v, u} '' {c | ∃ S, (∀ (a : α), ∃ b ∈ S, r a b) ∧ #↑S = c}) ≤ b

tactic: rintro - ⟨-, ⟨u, H, rfl⟩, rfl⟩
state_before: α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
⊢ ∀ b ∈ Cardinal.lift.{max u v, v} '' {c | ∃ S, (∀ (a : β), ∃ b ∈ S, s a b) ∧ #↑S = c},
    sInf (Cardinal.lift.{max u v, u} '' {c | ∃ S, (∀ (a : α), ∃ b ∈ S, r a b) ∧ #↑S = c}) ≤ b
state_after: case intro.intro.intro.intro
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
⊢ sInf (Cardinal.lift.{max u v, u} '' {c | ∃ S, (∀ (a : α), ∃ b ∈ S, r a b) ∧ #↑S = c}) ≤ Cardinal.lift.{max u v, v} #↑u

tactic: apply csInf_le'
state_before: case intro.intro.intro.intro
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
⊢ sInf (Cardinal.lift.{max u v, u} '' {c | ∃ S, (∀ (a : α), ∃ b ∈ S, r a b) ∧ #↑S = c}) ≤ Cardinal.lift.{max u v, v} #↑u
state_after: case intro.intro.intro.intro.h
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
⊢ Cardinal.lift.{max u v, v} #↑u ∈ Cardinal.lift.{max u v, u} '' {c | ∃ S, (∀ (a : α), ∃ b ∈ S, r a b) ∧ #↑S = c}

tactic: refine
  ⟨_, ⟨f.symm '' u, fun a => ?_, rfl⟩,
    lift_mk_eq.{u, v, max u v}.2 ⟨(f.symm.toEquiv.image u).symm⟩⟩
state_before: case intro.intro.intro.intro.h
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
⊢ Cardinal.lift.{max u v, v} #↑u ∈ Cardinal.lift.{max u v, u} '' {c | ∃ S, (∀ (a : α), ∃ b ∈ S, r a b) ∧ #↑S = c}
state_after: case intro.intro.intro.intro.h
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
a : α
⊢ ∃ b ∈ ⇑f.symm '' u, r a b

tactic: rcases H (f a) with ⟨b, hb, hb'⟩
state_before: case intro.intro.intro.intro.h
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
a : α
⊢ ∃ b ∈ ⇑f.symm '' u, r a b
state_after: case intro.intro.intro.intro.h.intro.intro
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
a : α
b : β
hb : b ∈ u
hb' : s (f a) b
⊢ ∃ b ∈ ⇑f.symm '' u, r a b

tactic: refine ⟨f.symm b, mem_image_of_mem _ hb, f.map_rel_iff.1 ?_⟩
state_before: case intro.intro.intro.intro.h.intro.intro
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
a : α
b : β
hb : b ∈ u
hb' : s (f a) b
⊢ ∃ b ∈ ⇑f.symm '' u, r a b
state_after: case intro.intro.intro.intro.h.intro.intro
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
a : α
b : β
hb : b ∈ u
hb' : s (f a) b
⊢ s (f a) (f (f.symm b))

tactic: rwa [RelIso.apply_symm_apply]
state_before: case intro.intro.intro.intro.h.intro.intro
α✝ : Type u_1
r✝ : α✝ → α✝ → Prop
α : Type u
β : Type v
r : α → α → Prop
s : β → β → Prop
inst✝ : IsRefl β s
f : r ≃r s
u : Set β
H : ∀ (a : β), ∃ b ∈ u, s a b
a : α
b : β
hb : b ∈ u
hb' : s (f a) b
⊢ s (f a) (f (f.symm b))
state_after: no goals