Metamath Proof Explorer


Theorem indexfi

Description: If for every element of a finite indexing set A there exists a corresponding element of another set B , then there exists a finite subset of B consisting only of those elements which are indexed by A . Proven without the Axiom of Choice, unlike indexdom . (Contributed by Jeff Madsen, 2-Sep-2009) (Proof shortened by Mario Carneiro, 12-Sep-2015)

Ref Expression
Assertion indexfi ⊢ A ∈ Fin ∧ B ∈ M ∧ ∀ x ∈ A ∃ y ∈ B φ → ∃ c ∈ Fin c ⊆ B ∧ ∀ x ∈ A ∃ y ∈ c φ ∧ ∀ y ∈ c ∃ x ∈ A φ

Proof

Step Hyp Ref Expression
1 nfv ⊢ Ⅎ z φ
2 nfsbc1v ⊢ Ⅎ y [˙z / y]˙ φ
3 sbceq1a ⊢ y = z → φ ↔ [˙z / y]˙ φ
4 1 2 3 cbvrexw ⊢ ∃ y ∈ B φ ↔ ∃ z ∈ B [˙z / y]˙ φ
5 4 ralbii ⊢ ∀ x ∈ A ∃ y ∈ B φ ↔ ∀ x ∈ A ∃ z ∈ B [˙z / y]˙ φ
6 dfsbcq ⊢ z = f ⁡ x → [˙z / y]˙ φ ↔ [˙ f ⁡ x / y]˙ φ
7 6 ac6sfi ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ z ∈ B [˙z / y]˙ φ → ∃ f f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ
8 5 7 sylan2b ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ → ∃ f f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ
9 simpll ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → A ∈ Fin
10 ffn ⊢ f : A ⟶ B → f Fn A
11 10 ad2antrl ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → f Fn A
12 dffn4 ⊢ f Fn A ↔ f : A ⟶ onto ran ⁡ f
13 11 12 sylib ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → f : A ⟶ onto ran ⁡ f
14 fofi ⊢ A ∈ Fin ∧ f : A ⟶ onto ran ⁡ f → ran ⁡ f ∈ Fin
15 9 13 14 syl2anc ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ran ⁡ f ∈ Fin
16 frn ⊢ f : A ⟶ B → ran ⁡ f ⊆ B
17 16 ad2antrl ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ran ⁡ f ⊆ B
18 fnfvelrn ⊢ f Fn A ∧ x ∈ A → f ⁡ x ∈ ran ⁡ f
19 10 18 sylan ⊢ f : A ⟶ B ∧ x ∈ A → f ⁡ x ∈ ran ⁡ f
20 rspesbca ⊢ f ⁡ x ∈ ran ⁡ f ∧ [˙ f ⁡ x / y]˙ φ → ∃ y ∈ ran ⁡ f φ
21 20 ex ⊢ f ⁡ x ∈ ran ⁡ f → [˙ f ⁡ x / y]˙ φ → ∃ y ∈ ran ⁡ f φ
22 19 21 syl ⊢ f : A ⟶ B ∧ x ∈ A → [˙ f ⁡ x / y]˙ φ → ∃ y ∈ ran ⁡ f φ
23 22 ralimdva ⊢ f : A ⟶ B → ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ x ∈ A ∃ y ∈ ran ⁡ f φ
24 23 imp ⊢ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ x ∈ A ∃ y ∈ ran ⁡ f φ
25 24 adantl ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ x ∈ A ∃ y ∈ ran ⁡ f φ
26 simpr ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ ∧ w ∈ A → w ∈ A
27 simprr ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ x ∈ A [˙ f ⁡ x / y]˙ φ
28 nfv ⊢ Ⅎ w [˙ f ⁡ x / y]˙ φ
29 nfsbc1v ⊢ Ⅎ x [˙w / x]˙ [˙ f ⁡ w / y]˙ φ
30 fveq2 ⊢ x = w → f ⁡ x = f ⁡ w
31 30 sbceq1d ⊢ x = w → [˙ f ⁡ x / y]˙ φ ↔ [˙ f ⁡ w / y]˙ φ
32 sbceq1a ⊢ x = w → [˙ f ⁡ w / y]˙ φ ↔ [˙w / x]˙ [˙ f ⁡ w / y]˙ φ
33 31 32 bitrd ⊢ x = w → [˙ f ⁡ x / y]˙ φ ↔ [˙w / x]˙ [˙ f ⁡ w / y]˙ φ
34 28 29 33 cbvralw ⊢ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ ↔ ∀ w ∈ A [˙w / x]˙ [˙ f ⁡ w / y]˙ φ
35 27 34 sylib ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ w ∈ A [˙w / x]˙ [˙ f ⁡ w / y]˙ φ
36 35 r19.21bi ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ ∧ w ∈ A → [˙w / x]˙ [˙ f ⁡ w / y]˙ φ
37 rspesbca ⊢ w ∈ A ∧ [˙w / x]˙ [˙ f ⁡ w / y]˙ φ → ∃ x ∈ A [˙ f ⁡ w / y]˙ φ
38 26 36 37 syl2anc ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ ∧ w ∈ A → ∃ x ∈ A [˙ f ⁡ w / y]˙ φ
39 38 ralrimiva ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ w ∈ A ∃ x ∈ A [˙ f ⁡ w / y]˙ φ
40 dfsbcq ⊢ z = f ⁡ w → [˙z / y]˙ φ ↔ [˙ f ⁡ w / y]˙ φ
41 40 rexbidv ⊢ z = f ⁡ w → ∃ x ∈ A [˙z / y]˙ φ ↔ ∃ x ∈ A [˙ f ⁡ w / y]˙ φ
42 41 ralrn ⊢ f Fn A → ∀ z ∈ ran ⁡ f ∃ x ∈ A [˙z / y]˙ φ ↔ ∀ w ∈ A ∃ x ∈ A [˙ f ⁡ w / y]˙ φ
43 11 42 syl ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ z ∈ ran ⁡ f ∃ x ∈ A [˙z / y]˙ φ ↔ ∀ w ∈ A ∃ x ∈ A [˙ f ⁡ w / y]˙ φ
44 39 43 mpbird ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ z ∈ ran ⁡ f ∃ x ∈ A [˙z / y]˙ φ
45 nfv ⊢ Ⅎ z ∃ x ∈ A φ
46 nfcv ⊢ Ⅎ _ y A
47 46 2 nfrexw ⊢ Ⅎ y ∃ x ∈ A [˙z / y]˙ φ
48 3 rexbidv ⊢ y = z → ∃ x ∈ A φ ↔ ∃ x ∈ A [˙z / y]˙ φ
49 45 47 48 cbvralw ⊢ ∀ y ∈ ran ⁡ f ∃ x ∈ A φ ↔ ∀ z ∈ ran ⁡ f ∃ x ∈ A [˙z / y]˙ φ
50 44 49 sylibr ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∀ y ∈ ran ⁡ f ∃ x ∈ A φ
51 sseq1 ⊢ c = ran ⁡ f → c ⊆ B ↔ ran ⁡ f ⊆ B
52 rexeq ⊢ c = ran ⁡ f → ∃ y ∈ c φ ↔ ∃ y ∈ ran ⁡ f φ
53 52 ralbidv ⊢ c = ran ⁡ f → ∀ x ∈ A ∃ y ∈ c φ ↔ ∀ x ∈ A ∃ y ∈ ran ⁡ f φ
54 raleq ⊢ c = ran ⁡ f → ∀ y ∈ c ∃ x ∈ A φ ↔ ∀ y ∈ ran ⁡ f ∃ x ∈ A φ
55 51 53 54 3anbi123d ⊢ c = ran ⁡ f → c ⊆ B ∧ ∀ x ∈ A ∃ y ∈ c φ ∧ ∀ y ∈ c ∃ x ∈ A φ ↔ ran ⁡ f ⊆ B ∧ ∀ x ∈ A ∃ y ∈ ran ⁡ f φ ∧ ∀ y ∈ ran ⁡ f ∃ x ∈ A φ
56 55 rspcev ⊢ ran ⁡ f ∈ Fin ∧ ran ⁡ f ⊆ B ∧ ∀ x ∈ A ∃ y ∈ ran ⁡ f φ ∧ ∀ y ∈ ran ⁡ f ∃ x ∈ A φ → ∃ c ∈ Fin c ⊆ B ∧ ∀ x ∈ A ∃ y ∈ c φ ∧ ∀ y ∈ c ∃ x ∈ A φ
57 15 17 25 50 56 syl13anc ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ ∧ f : A ⟶ B ∧ ∀ x ∈ A [˙ f ⁡ x / y]˙ φ → ∃ c ∈ Fin c ⊆ B ∧ ∀ x ∈ A ∃ y ∈ c φ ∧ ∀ y ∈ c ∃ x ∈ A φ
58 8 57 exlimddv ⊢ A ∈ Fin ∧ ∀ x ∈ A ∃ y ∈ B φ → ∃ c ∈ Fin c ⊆ B ∧ ∀ x ∈ A ∃ y ∈ c φ ∧ ∀ y ∈ c ∃ x ∈ A φ
59 58 3adant2 ⊢ A ∈ Fin ∧ B ∈ M ∧ ∀ x ∈ A ∃ y ∈ B φ → ∃ c ∈ Fin c ⊆ B ∧ ∀ x ∈ A ∃ y ∈ c φ ∧ ∀ y ∈ c ∃ x ∈ A φ