refine card_ge_card_of_surj ?f ?f_surj
α : Type u
β : Type v
inst✝³ : BishopFin α
inst✝² : BishopFin β
p q : α → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
f : β → α
f_surj : ∀ (a : α), ∃ b, f b = a
⊢ card { a // p a } ≤ card { a // (p ∘ f) a }
case f
α : Type u
β : Type v
inst✝³ : BishopFin α
inst✝² : BishopFin β
p q : α → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
f : β → α
f_surj : ∀ (a : α), ∃ b, f b = a
⊢ { a // (p ∘ f) a } → { a // p a }

case f_surj
α : Type u
β : Type v
inst✝³ : BishopFin α
inst✝² : BishopFin β
p q : α → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
f : β → α
f_surj : ∀ (a : α), ∃ b, f b = a
⊢ ∀ (b : { a // p a }), ∃ a, ?f a = b