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

Theorem resixpfo 8994
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 8991 . . . 4 ((𝐵𝐴𝑓X𝑥𝐴 𝐶) → (𝑓𝐵) ∈ X𝑥𝐵 𝐶)
2 resixpfo.1 . . . 4 𝐹 = (𝑓X𝑥𝐴 𝐶 ↦ (𝑓𝐵))
31, 2fmptd 7148 . . 3 (𝐵𝐴𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
43adantr 480 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
5 n0 4376 . . . 4 (X𝑥𝐴 𝐶 ≠ ∅ ↔ ∃𝑔 𝑔X𝑥𝐴 𝐶)
6 eleq1w 2827 . . . . . . . . . . . 12 (𝑧 = 𝑥 → (𝑧𝐵𝑥𝐵))
76ifbid 4571 . . . . . . . . . . 11 (𝑧 = 𝑥 → if(𝑧𝐵, , 𝑔) = if(𝑥𝐵, , 𝑔))
8 id 22 . . . . . . . . . . 11 (𝑧 = 𝑥𝑧 = 𝑥)
97, 8fveq12d 6927 . . . . . . . . . 10 (𝑧 = 𝑥 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (if(𝑥𝐵, , 𝑔)‘𝑥))
109cbvmptv 5279 . . . . . . . . 9 (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥))
11 vex 3492 . . . . . . . . . . . . . . . 16 ∈ V
1211elixp 8962 . . . . . . . . . . . . . . 15 (X𝑥𝐵 𝐶 ↔ ( Fn 𝐵 ∧ ∀𝑥𝐵 (𝑥) ∈ 𝐶))
1312simprbi 496 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 → ∀𝑥𝐵 (𝑥) ∈ 𝐶)
14 fveq1 6919 . . . . . . . . . . . . . . . . . 18 ( = if(𝑥𝐵, , 𝑔) → (𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
1514eleq1d 2829 . . . . . . . . . . . . . . . . 17 ( = if(𝑥𝐵, , 𝑔) → ((𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
16 fveq1 6919 . . . . . . . . . . . . . . . . . 18 (𝑔 = if(𝑥𝐵, , 𝑔) → (𝑔𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
1716eleq1d 2829 . . . . . . . . . . . . . . . . 17 (𝑔 = if(𝑥𝐵, , 𝑔) → ((𝑔𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
18 simpl 482 . . . . . . . . . . . . . . . . . 18 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (𝑥𝐵 → (𝑥) ∈ 𝐶))
1918imp 406 . . . . . . . . . . . . . . . . 17 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ 𝑥𝐵) → (𝑥) ∈ 𝐶)
20 simplrr 777 . . . . . . . . . . . . . . . . 17 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ ¬ 𝑥𝐵) → (𝑔𝑥) ∈ 𝐶)
2115, 17, 19, 20ifbothda 4586 . . . . . . . . . . . . . . . 16 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
2221exp32 420 . . . . . . . . . . . . . . 15 ((𝑥𝐵 → (𝑥) ∈ 𝐶) → (𝑥𝐴 → ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)))
2322ralimi2 3084 . . . . . . . . . . . . . 14 (∀𝑥𝐵 (𝑥) ∈ 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2413, 23syl 17 . . . . . . . . . . . . 13 (X𝑥𝐵 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2524adantl 481 . . . . . . . . . . . 12 ((𝐵𝐴X𝑥𝐵 𝐶) → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
26 ralim 3092 . . . . . . . . . . . 12 (∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2725, 26syl 17 . . . . . . . . . . 11 ((𝐵𝐴X𝑥𝐵 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
28 vex 3492 . . . . . . . . . . . . 13 𝑔 ∈ V
2928elixp 8962 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶 ↔ (𝑔 Fn 𝐴 ∧ ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶))
3029simprbi 496 . . . . . . . . . . 11 (𝑔X𝑥𝐴 𝐶 → ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶)
3127, 30impel 505 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
32 n0i 4363 . . . . . . . . . . . . 13 (𝑔X𝑥𝐴 𝐶 → ¬ X𝑥𝐴 𝐶 = ∅)
33 ixpprc 8977 . . . . . . . . . . . . 13 𝐴 ∈ V → X𝑥𝐴 𝐶 = ∅)
3432, 33nsyl2 141 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶𝐴 ∈ V)
3534adantl 481 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → 𝐴 ∈ V)
36 mptelixpg 8993 . . . . . . . . . . 11 (𝐴 ∈ V → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3735, 36syl 17 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3831, 37mpbird 257 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶)
3910, 38eqeltrid 2848 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶)
40 reseq1 6003 . . . . . . . . . 10 (𝑓 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝑓𝐵) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
41 iftrue 4554 . . . . . . . . . . . . . 14 (𝑧𝐵 → if(𝑧𝐵, , 𝑔) = )
4241fveq1d 6922 . . . . . . . . . . . . 13 (𝑧𝐵 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (𝑧))
4342mpteq2ia 5269 . . . . . . . . . . . 12 (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑧𝐵 ↦ (𝑧))
44 resmpt 6066 . . . . . . . . . . . . 13 (𝐵𝐴 → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
4544ad2antrr 725 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
46 ixpfn 8961 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 Fn 𝐵)
4746ad2antlr 726 . . . . . . . . . . . . 13 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → Fn 𝐵)
48 dffn5 6980 . . . . . . . . . . . . 13 ( Fn 𝐵 = (𝑧𝐵 ↦ (𝑧)))
4947, 48sylib 218 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝑧𝐵 ↦ (𝑧)))
5043, 45, 493eqtr4a 2806 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = )
5150, 11eqeltrdi 2852 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) ∈ V)
522, 40, 39, 51fvmptd3 7052 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5352, 50eqtr2d 2781 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
54 fveq2 6920 . . . . . . . . 9 (𝑦 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝐹𝑦) = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
5554rspceeqv 3658 . . . . . . . 8 (((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶 = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
5639, 53, 55syl2anc 583 . . . . . . 7 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
5756ex 412 . . . . . 6 ((𝐵𝐴X𝑥𝐵 𝐶) → (𝑔X𝑥𝐴 𝐶 → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
5857ralrimdva 3160 . . . . 5 (𝐵𝐴 → (𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
5958exlimdv 1932 . . . 4 (𝐵𝐴 → (∃𝑔 𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
605, 59biimtrid 242 . . 3 (𝐵𝐴 → (X𝑥𝐴 𝐶 ≠ ∅ → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6160imp 406 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
62 dffo3 7136 . 2 (𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶 ↔ (𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶 ∧ ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
634, 61, 62sylanbrc 582 1 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395   = wceq 1537  wex 1777  wcel 2108  wne 2946  wral 3067  wrex 3076  Vcvv 3488  wss 3976  c0 4352  ifcif 4548  cmpt 5249  cres 5702   Fn wfn 6568  wf 6569  ontowfo 6571  cfv 6573  Xcixp 8955
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1793  ax-4 1807  ax-5 1909  ax-6 1967  ax-7 2007  ax-8 2110  ax-9 2118  ax-10 2141  ax-11 2158  ax-12 2178  ax-ext 2711  ax-rep 5303  ax-sep 5317  ax-nul 5324  ax-pr 5447  ax-un 7770
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 847  df-3an 1089  df-tru 1540  df-fal 1550  df-ex 1778  df-nf 1782  df-sb 2065  df-mo 2543  df-eu 2572  df-clab 2718  df-cleq 2732  df-clel 2819  df-nfc 2895  df-ne 2947  df-ral 3068  df-rex 3077  df-reu 3389  df-rab 3444  df-v 3490  df-sbc 3805  df-csb 3922  df-dif 3979  df-un 3981  df-in 3983  df-ss 3993  df-nul 4353  df-if 4549  df-sn 4649  df-pr 4651  df-op 4655  df-uni 4932  df-iun 5017  df-br 5167  df-opab 5229  df-mpt 5250  df-id 5593  df-xp 5706  df-rel 5707  df-cnv 5708  df-co 5709  df-dm 5710  df-rn 5711  df-res 5712  df-ima 5713  df-iota 6525  df-fun 6575  df-fn 6576  df-f 6577  df-f1 6578  df-fo 6579  df-f1o 6580  df-fv 6581  df-ixp 8956
This theorem is referenced by:  ptcmplem2  24082
  Copyright terms: Public domain W3C validator