Skip to content

Commit 120e8f9

Browse files
authored
Merge pull request #136 from arthuraa/card_in_imfsetP
Add converse of card_in_imfset.
2 parents 2c78d0a + e17a85a commit 120e8f9

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

finmap.v

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2214,6 +2214,21 @@ have eqk : ka = kb by apply: injf => //; rewrite -eqka -eqkb.
22142214
by exists ka => //; apply/fsetIP; split=> //; rewrite eqk.
22152215
Qed.
22162216

2217+
Lemma card_in_imfsetP f A :
2218+
reflect {in A &, injective f} (#|` f @` A| == #|` A|).
2219+
Proof.
2220+
apply/(iffP eqP) => [card_eq|?]; last exact: card_in_imfset.
2221+
apply/fset_injective_inP; have [//|] := boolP (injectiveb _).
2222+
case/injectivePn=> /= x [] y x_y fx_fy; pose B := A `\ \val x.
2223+
have AE : A = \val x |` B by rewrite fsetD1K ?(valP x).
2224+
have card_A : #|` A| = #|` B|.+1 by rewrite (cardfsD1 (\val x)) /= (valP x).
2225+
suff /fsubset_leq_card fAfB : f @` A `<=` f @` B.
2226+
by rewrite card_eq card_A ltnNge leq_imfset_card in fAfB.
2227+
rewrite AE imfsetU1 fsubUset fsub1set fx_fy fsubset_refl andbT.
2228+
apply/imfsetP; exists (\val y); rewrite //= in_fsetD1 eq_sym (valP y).
2229+
by rewrite inj_eq ?x_y //; exact: val_inj.
2230+
Qed.
2231+
22172232
End ImfsetTh.
22182233

22192234
Section PowerSetTheory.

0 commit comments

Comments
 (0)