MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  resixpfo Structured version   Visualization version   GIF version

Theorem resixpfo 8112
Description: Restriction of elements of an infinite Cartesian product creates a surjection, if the original Cartesian product is nonempty. (Contributed by Mario Carneiro, 27-Aug-2015.)
Hypothesis
Ref Expression
resixpfo.1 𝐹 = (𝑓X𝑥𝐴 𝐶 ↦ (𝑓𝐵))
Assertion
Ref Expression
resixpfo ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶)
Distinct variable groups:   𝑥,𝑓,𝐴   𝐵,𝑓,𝑥   𝐶,𝑓
Allowed substitution hints:   𝐶(𝑥)   𝐹(𝑥,𝑓)

Proof of Theorem resixpfo
Dummy variables 𝑔 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 resixp 8109 . . . 4 ((𝐵𝐴𝑓X𝑥𝐴 𝐶) → (𝑓𝐵) ∈ X𝑥𝐵 𝐶)
2 resixpfo.1 . . . 4 𝐹 = (𝑓X𝑥𝐴 𝐶 ↦ (𝑓𝐵))
31, 2fmptd 6548 . . 3 (𝐵𝐴𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
43adantr 472 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
5 n0 4074 . . . 4 (X𝑥𝐴 𝐶 ≠ ∅ ↔ ∃𝑔 𝑔X𝑥𝐴 𝐶)
6 eleq1w 2822 . . . . . . . . . . . 12 (𝑧 = 𝑥 → (𝑧𝐵𝑥𝐵))
76ifbid 4252 . . . . . . . . . . 11 (𝑧 = 𝑥 → if(𝑧𝐵, , 𝑔) = if(𝑥𝐵, , 𝑔))
8 id 22 . . . . . . . . . . 11 (𝑧 = 𝑥𝑧 = 𝑥)
97, 8fveq12d 6358 . . . . . . . . . 10 (𝑧 = 𝑥 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (if(𝑥𝐵, , 𝑔)‘𝑥))
109cbvmptv 4902 . . . . . . . . 9 (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥))
11 vex 3343 . . . . . . . . . . . . 13 𝑔 ∈ V
1211elixp 8081 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶 ↔ (𝑔 Fn 𝐴 ∧ ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶))
1312simprbi 483 . . . . . . . . . . 11 (𝑔X𝑥𝐴 𝐶 → ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶)
14 vex 3343 . . . . . . . . . . . . . . . . 17 ∈ V
1514elixp 8081 . . . . . . . . . . . . . . . 16 (X𝑥𝐵 𝐶 ↔ ( Fn 𝐵 ∧ ∀𝑥𝐵 (𝑥) ∈ 𝐶))
1615simprbi 483 . . . . . . . . . . . . . . 15 (X𝑥𝐵 𝐶 → ∀𝑥𝐵 (𝑥) ∈ 𝐶)
17 fveq1 6351 . . . . . . . . . . . . . . . . . . 19 ( = if(𝑥𝐵, , 𝑔) → (𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
1817eleq1d 2824 . . . . . . . . . . . . . . . . . 18 ( = if(𝑥𝐵, , 𝑔) → ((𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
19 fveq1 6351 . . . . . . . . . . . . . . . . . . 19 (𝑔 = if(𝑥𝐵, , 𝑔) → (𝑔𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
2019eleq1d 2824 . . . . . . . . . . . . . . . . . 18 (𝑔 = if(𝑥𝐵, , 𝑔) → ((𝑔𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
21 simpl 474 . . . . . . . . . . . . . . . . . . 19 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (𝑥𝐵 → (𝑥) ∈ 𝐶))
2221imp 444 . . . . . . . . . . . . . . . . . 18 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ 𝑥𝐵) → (𝑥) ∈ 𝐶)
23 simplrr 820 . . . . . . . . . . . . . . . . . 18 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ ¬ 𝑥𝐵) → (𝑔𝑥) ∈ 𝐶)
2418, 20, 22, 23ifbothda 4267 . . . . . . . . . . . . . . . . 17 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
2524exp32 632 . . . . . . . . . . . . . . . 16 ((𝑥𝐵 → (𝑥) ∈ 𝐶) → (𝑥𝐴 → ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)))
2625ralimi2 3087 . . . . . . . . . . . . . . 15 (∀𝑥𝐵 (𝑥) ∈ 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2716, 26syl 17 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2827adantl 473 . . . . . . . . . . . . 13 ((𝐵𝐴X𝑥𝐵 𝐶) → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
29 ralim 3086 . . . . . . . . . . . . 13 (∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3028, 29syl 17 . . . . . . . . . . . 12 ((𝐵𝐴X𝑥𝐵 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3130imp 444 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶) → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
3213, 31sylan2 492 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
33 n0i 4063 . . . . . . . . . . . . 13 (𝑔X𝑥𝐴 𝐶 → ¬ X𝑥𝐴 𝐶 = ∅)
34 ixpprc 8095 . . . . . . . . . . . . 13 𝐴 ∈ V → X𝑥𝐴 𝐶 = ∅)
3533, 34nsyl2 142 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶𝐴 ∈ V)
3635adantl 473 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → 𝐴 ∈ V)
37 mptelixpg 8111 . . . . . . . . . . 11 (𝐴 ∈ V → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3836, 37syl 17 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3932, 38mpbird 247 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶)
4010, 39syl5eqel 2843 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶)
41 iftrue 4236 . . . . . . . . . . . . . 14 (𝑧𝐵 → if(𝑧𝐵, , 𝑔) = )
4241fveq1d 6354 . . . . . . . . . . . . 13 (𝑧𝐵 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (𝑧))
4342mpteq2ia 4892 . . . . . . . . . . . 12 (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑧𝐵 ↦ (𝑧))
44 resmpt 5607 . . . . . . . . . . . . 13 (𝐵𝐴 → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
4544ad2antrr 764 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
46 ixpfn 8080 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 Fn 𝐵)
4746ad2antlr 765 . . . . . . . . . . . . 13 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → Fn 𝐵)
48 dffn5 6403 . . . . . . . . . . . . 13 ( Fn 𝐵 = (𝑧𝐵 ↦ (𝑧)))
4947, 48sylib 208 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝑧𝐵 ↦ (𝑧)))
5043, 45, 493eqtr4a 2820 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = )
5150, 14syl6eqel 2847 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) ∈ V)
52 reseq1 5545 . . . . . . . . . . 11 (𝑓 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝑓𝐵) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5352, 2fvmptg 6442 . . . . . . . . . 10 (((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶 ∧ ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) ∈ V) → (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5440, 51, 53syl2anc 696 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5554, 50eqtr2d 2795 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
56 fveq2 6352 . . . . . . . . . 10 (𝑦 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝐹𝑦) = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
5756eqeq2d 2770 . . . . . . . . 9 (𝑦 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → ( = (𝐹𝑦) ↔ = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))))
5857rspcev 3449 . . . . . . . 8 (((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶 = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
5940, 55, 58syl2anc 696 . . . . . . 7 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
6059ex 449 . . . . . 6 ((𝐵𝐴X𝑥𝐵 𝐶) → (𝑔X𝑥𝐴 𝐶 → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6160ralrimdva 3107 . . . . 5 (𝐵𝐴 → (𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6261exlimdv 2010 . . . 4 (𝐵𝐴 → (∃𝑔 𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
635, 62syl5bi 232 . . 3 (𝐵𝐴 → (X𝑥𝐴 𝐶 ≠ ∅ → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6463imp 444 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
65 dffo3 6537 . 2 (𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶 ↔ (𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶 ∧ ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
664, 64, 65sylanbrc 701 1 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wa 383   = wceq 1632  wex 1853  wcel 2139  wne 2932  wral 3050  wrex 3051  Vcvv 3340  wss 3715  c0 4058  ifcif 4230  cmpt 4881  cres 5268   Fn wfn 6044  wf 6045  ontowfo 6047  cfv 6049  Xcixp 8074
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1871  ax-4 1886  ax-5 1988  ax-6 2054  ax-7 2090  ax-8 2141  ax-9 2148  ax-10 2168  ax-11 2183  ax-12 2196  ax-13 2391  ax-ext 2740  ax-rep 4923  ax-sep 4933  ax-nul 4941  ax-pow 4992  ax-pr 5055  ax-un 7114
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3an 1074  df-tru 1635  df-ex 1854  df-nf 1859  df-sb 2047  df-eu 2611  df-mo 2612  df-clab 2747  df-cleq 2753  df-clel 2756  df-nfc 2891  df-ne 2933  df-ral 3055  df-rex 3056  df-reu 3057  df-rab 3059  df-v 3342  df-sbc 3577  df-csb 3675  df-dif 3718  df-un 3720  df-in 3722  df-ss 3729  df-nul 4059  df-if 4231  df-sn 4322  df-pr 4324  df-op 4328  df-uni 4589  df-iun 4674  df-br 4805  df-opab 4865  df-mpt 4882  df-id 5174  df-xp 5272  df-rel 5273  df-cnv 5274  df-co 5275  df-dm 5276  df-rn 5277  df-res 5278  df-ima 5279  df-iota 6012  df-fun 6051  df-fn 6052  df-f 6053  df-f1 6054  df-fo 6055  df-f1o 6056  df-fv 6057  df-ixp 8075
This theorem is referenced by:  ptcmplem2  22058
  Copyright terms: Public domain W3C validator