Theorem: Set.eq_of_subset_of_ncard_le
File: Mathlib/Data/Set/Ncard.lean

tactic: have htfin := ht.fintype
state_before: α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
h' : ncard t ≤ ncard s
ht : autoParam (Set.Finite t) _auto✝
⊢ s = t

tactic: have hft := (ht.subset h).fintype
state_before: α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
h' : ncard t ≤ ncard s
ht : autoParam (Set.Finite t) _auto✝
htfin : Fintype ↑t
⊢ s = t

tactic: rw [← @toFinset_inj]
state_before: α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
h' : ncard t ≤ ncard s
ht : autoParam (Set.Finite t) _auto✝
htfin : Fintype ↑t
hft : Fintype ↑s
⊢ s = t

tactic: apply Finset.eq_of_subset_of_card_le
state_before: α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
h' : ncard t ≤ ncard s
ht : autoParam (Set.Finite t) _auto✝
htfin : Fintype ↑t
hft : Fintype ↑s
⊢ toFinset s = toFinset t

tactic: rw [ncard_eq_toFinset_card _ ht, ncard_eq_toFinset_card _ (ht.subset h)] at h'
state_before: case h₂
α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
h' : ncard t ≤ ncard s
ht : autoParam (Set.Finite t) _auto✝
htfin : Fintype ↑t
hft : Fintype ↑s
⊢ Finset.card (toFinset t) ≤ Finset.card (toFinset s)

tactic: convert h'
state_before: case h₂
α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
ht : autoParam (Set.Finite t) _auto✝
h' : Finset.card (Finite.toFinset ht) ≤ Finset.card (Finite.toFinset (_ : Set.Finite s))
htfin : Fintype ↑t
hft : Fintype ↑s
⊢ Finset.card (toFinset t) ≤ Finset.card (toFinset s)

tactic: ext
state_before: case h.e'_4.h.e'_2
α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
ht : autoParam (Set.Finite t) _auto✝
h' : Finset.card (Finite.toFinset ht) ≤ Finset.card (Finite.toFinset (_ : Set.Finite s))
htfin : Fintype ↑t
hft : Fintype ↑s
⊢ toFinset s = Finite.toFinset (_ : Set.Finite s)

tactic: simp
state_before: case h.e'_4.h.e'_2.a
α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
ht : autoParam (Set.Finite t) _auto✝
h' : Finset.card (Finite.toFinset ht) ≤ Finset.card (Finite.toFinset (_ : Set.Finite s))
htfin : Fintype ↑t
hft : Fintype ↑s
a✝ : α
⊢ a✝ ∈ toFinset s ↔ a✝ ∈ Finite.toFinset (_ : Set.Finite s)

tactic: simpa
state_before: case h
α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
h' : ncard t ≤ ncard s
ht : autoParam (Set.Finite t) _auto✝
htfin : Fintype ↑t
hft : Fintype ↑s
⊢ toFinset s ⊆ toFinset t

tactic: ext
state_before: case h.e'_3.h.e'_2
α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
ht : autoParam (Set.Finite t) _auto✝
h' : Finset.card (Finite.toFinset ht) ≤ Finset.card (Finite.toFinset (_ : Set.Finite s))
htfin : Fintype ↑t
hft : Fintype ↑s
⊢ toFinset t = Finite.toFinset ht

tactic: simp
state_before: case h.e'_3.h.e'_2.a
α : Type u_1
β : Type ?u.49880
s t : Set α
a b x y : α
f : α → β
h : s ⊆ t
ht : autoParam (Set.Finite t) _auto✝
h' : Finset.card (Finite.toFinset ht) ≤ Finset.card (Finite.toFinset (_ : Set.Finite s))
htfin : Fintype ↑t
hft : Fintype ↑s
a✝ : α
⊢ a✝ ∈ toFinset t ↔ a✝ ∈ Finite.toFinset ht