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

Theorem resixpfo 7898
 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 7895 . . . 4 ((𝐵𝐴𝑓X𝑥𝐴 𝐶) → (𝑓𝐵) ∈ X𝑥𝐵 𝐶)
2 resixpfo.1 . . . 4 𝐹 = (𝑓X𝑥𝐴 𝐶 ↦ (𝑓𝐵))
31, 2fmptd 6346 . . 3 (𝐵𝐴𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
43adantr 481 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
5 n0 3912 . . . 4 (X𝑥𝐴 𝐶 ≠ ∅ ↔ ∃𝑔 𝑔X𝑥𝐴 𝐶)
6 eleq1 2686 . . . . . . . . . . . 12 (𝑧 = 𝑥 → (𝑧𝐵𝑥𝐵))
76ifbid 4085 . . . . . . . . . . 11 (𝑧 = 𝑥 → if(𝑧𝐵, , 𝑔) = if(𝑥𝐵, , 𝑔))
8 id 22 . . . . . . . . . . 11 (𝑧 = 𝑥𝑧 = 𝑥)
97, 8fveq12d 6159 . . . . . . . . . 10 (𝑧 = 𝑥 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (if(𝑥𝐵, , 𝑔)‘𝑥))
109cbvmptv 4715 . . . . . . . . 9 (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥))
11 vex 3192 . . . . . . . . . . . . 13 𝑔 ∈ V
1211elixp 7867 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶 ↔ (𝑔 Fn 𝐴 ∧ ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶))
1312simprbi 480 . . . . . . . . . . 11 (𝑔X𝑥𝐴 𝐶 → ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶)
14 vex 3192 . . . . . . . . . . . . . . . . 17 ∈ V
1514elixp 7867 . . . . . . . . . . . . . . . 16 (X𝑥𝐵 𝐶 ↔ ( Fn 𝐵 ∧ ∀𝑥𝐵 (𝑥) ∈ 𝐶))
1615simprbi 480 . . . . . . . . . . . . . . 15 (X𝑥𝐵 𝐶 → ∀𝑥𝐵 (𝑥) ∈ 𝐶)
17 fveq1 6152 . . . . . . . . . . . . . . . . . . 19 ( = if(𝑥𝐵, , 𝑔) → (𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
1817eleq1d 2683 . . . . . . . . . . . . . . . . . 18 ( = if(𝑥𝐵, , 𝑔) → ((𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
19 fveq1 6152 . . . . . . . . . . . . . . . . . . 19 (𝑔 = if(𝑥𝐵, , 𝑔) → (𝑔𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
2019eleq1d 2683 . . . . . . . . . . . . . . . . . 18 (𝑔 = if(𝑥𝐵, , 𝑔) → ((𝑔𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
21 simpl 473 . . . . . . . . . . . . . . . . . . 19 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (𝑥𝐵 → (𝑥) ∈ 𝐶))
2221imp 445 . . . . . . . . . . . . . . . . . 18 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ 𝑥𝐵) → (𝑥) ∈ 𝐶)
23 simplrr 800 . . . . . . . . . . . . . . . . . 18 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ ¬ 𝑥𝐵) → (𝑔𝑥) ∈ 𝐶)
2418, 20, 22, 23ifbothda 4100 . . . . . . . . . . . . . . . . 17 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
2524exp32 630 . . . . . . . . . . . . . . . 16 ((𝑥𝐵 → (𝑥) ∈ 𝐶) → (𝑥𝐴 → ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)))
2625ralimi2 2944 . . . . . . . . . . . . . . 15 (∀𝑥𝐵 (𝑥) ∈ 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2716, 26syl 17 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2827adantl 482 . . . . . . . . . . . . 13 ((𝐵𝐴X𝑥𝐵 𝐶) → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
29 ralim 2943 . . . . . . . . . . . . 13 (∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3028, 29syl 17 . . . . . . . . . . . 12 ((𝐵𝐴X𝑥𝐵 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3130imp 445 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶) → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
3213, 31sylan2 491 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
33 n0i 3901 . . . . . . . . . . . . 13 (𝑔X𝑥𝐴 𝐶 → ¬ X𝑥𝐴 𝐶 = ∅)
34 ixpprc 7881 . . . . . . . . . . . . 13 𝐴 ∈ V → X𝑥𝐴 𝐶 = ∅)
3533, 34nsyl2 142 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶𝐴 ∈ V)
3635adantl 482 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → 𝐴 ∈ V)
37 mptelixpg 7897 . . . . . . . . . . 11 (𝐴 ∈ V → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3836, 37syl 17 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3932, 38mpbird 247 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶)
4010, 39syl5eqel 2702 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶)
41 iftrue 4069 . . . . . . . . . . . . . 14 (𝑧𝐵 → if(𝑧𝐵, , 𝑔) = )
4241fveq1d 6155 . . . . . . . . . . . . 13 (𝑧𝐵 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (𝑧))
4342mpteq2ia 4705 . . . . . . . . . . . 12 (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑧𝐵 ↦ (𝑧))
44 resmpt 5413 . . . . . . . . . . . . 13 (𝐵𝐴 → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
4544ad2antrr 761 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
46 ixpfn 7866 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 Fn 𝐵)
4746ad2antlr 762 . . . . . . . . . . . . 13 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → Fn 𝐵)
48 dffn5 6203 . . . . . . . . . . . . 13 ( Fn 𝐵 = (𝑧𝐵 ↦ (𝑧)))
4947, 48sylib 208 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝑧𝐵 ↦ (𝑧)))
5043, 45, 493eqtr4a 2681 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = )
5150, 14syl6eqel 2706 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) ∈ V)
52 reseq1 5355 . . . . . . . . . . 11 (𝑓 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝑓𝐵) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5352, 2fvmptg 6242 . . . . . . . . . 10 (((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶 ∧ ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) ∈ V) → (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5440, 51, 53syl2anc 692 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5554, 50eqtr2d 2656 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
56 fveq2 6153 . . . . . . . . . 10 (𝑦 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝐹𝑦) = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
5756eqeq2d 2631 . . . . . . . . 9 (𝑦 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → ( = (𝐹𝑦) ↔ = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))))
5857rspcev 3298 . . . . . . . 8 (((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶 = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
5940, 55, 58syl2anc 692 . . . . . . 7 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
6059ex 450 . . . . . 6 ((𝐵𝐴X𝑥𝐵 𝐶) → (𝑔X𝑥𝐴 𝐶 → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6160ralrimdva 2964 . . . . 5 (𝐵𝐴 → (𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6261exlimdv 1858 . . . 4 (𝐵𝐴 → (∃𝑔 𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
635, 62syl5bi 232 . . 3 (𝐵𝐴 → (X𝑥𝐴 𝐶 ≠ ∅ → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6463imp 445 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
65 dffo3 6335 . 2 (𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶 ↔ (𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶 ∧ ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
664, 64, 65sylanbrc 697 1 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶)
 Colors of variables: wff setvar class Syntax hints:  ¬ wn 3   → wi 4   ↔ wb 196   ∧ wa 384   = wceq 1480  ∃wex 1701   ∈ wcel 1987   ≠ wne 2790  ∀wral 2907  ∃wrex 2908  Vcvv 3189   ⊆ wss 3559  ∅c0 3896  ifcif 4063   ↦ cmpt 4678   ↾ cres 5081   Fn wfn 5847  ⟶wf 5848  –onto→wfo 5850  ‘cfv 5852  Xcixp 7860 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1719  ax-4 1734  ax-5 1836  ax-6 1885  ax-7 1932  ax-8 1989  ax-9 1996  ax-10 2016  ax-11 2031  ax-12 2044  ax-13 2245  ax-ext 2601  ax-rep 4736  ax-sep 4746  ax-nul 4754  ax-pow 4808  ax-pr 4872  ax-un 6909 This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3an 1038  df-tru 1483  df-ex 1702  df-nf 1707  df-sb 1878  df-eu 2473  df-mo 2474  df-clab 2608  df-cleq 2614  df-clel 2617  df-nfc 2750  df-ne 2791  df-ral 2912  df-rex 2913  df-reu 2914  df-rab 2916  df-v 3191  df-sbc 3422  df-csb 3519  df-dif 3562  df-un 3564  df-in 3566  df-ss 3573  df-nul 3897  df-if 4064  df-sn 4154  df-pr 4156  df-op 4160  df-uni 4408  df-iun 4492  df-br 4619  df-opab 4679  df-mpt 4680  df-id 4994  df-xp 5085  df-rel 5086  df-cnv 5087  df-co 5088  df-dm 5089  df-rn 5090  df-res 5091  df-ima 5092  df-iota 5815  df-fun 5854  df-fn 5855  df-f 5856  df-f1 5857  df-fo 5858  df-f1o 5859  df-fv 5860  df-ixp 7861 This theorem is referenced by:  ptcmplem2  21780
 Copyright terms: Public domain W3C validator