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

Theorem resixpfo 8914
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 8911 . . . 4 ((𝐵𝐴𝑓X𝑥𝐴 𝐶) → (𝑓𝐵) ∈ X𝑥𝐵 𝐶)
2 resixpfo.1 . . . 4 𝐹 = (𝑓X𝑥𝐴 𝐶 ↦ (𝑓𝐵))
31, 2fmptd 7091 . . 3 (𝐵𝐴𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
43adantr 484 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
5 n0 4305 . . . 4 (X𝑥𝐴 𝐶 ≠ ∅ ↔ ∃𝑔 𝑔X𝑥𝐴 𝐶)
6 eleq1w 2844 . . . . . . . . . . . 12 (𝑧 = 𝑥 → (𝑧𝐵𝑥𝐵))
76ifbid 4503 . . . . . . . . . . 11 (𝑧 = 𝑥 → if(𝑧𝐵, , 𝑔) = if(𝑥𝐵, , 𝑔))
8 id 22 . . . . . . . . . . 11 (𝑧 = 𝑥𝑧 = 𝑥)
97, 8fveq12d 6870 . . . . . . . . . 10 (𝑧 = 𝑥 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (if(𝑥𝐵, , 𝑔)‘𝑥))
109cbvmptv 5203 . . . . . . . . 9 (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥))
11 vex 3457 . . . . . . . . . . . . . . . 16 ∈ V
1211elixp 8882 . . . . . . . . . . . . . . 15 (X𝑥𝐵 𝐶 ↔ ( Fn 𝐵 ∧ ∀𝑥𝐵 (𝑥) ∈ 𝐶))
1312simprbi 501 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 → ∀𝑥𝐵 (𝑥) ∈ 𝐶)
14 fveq1 6862 . . . . . . . . . . . . . . . . . 18 ( = if(𝑥𝐵, , 𝑔) → (𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
1514eleq1d 2846 . . . . . . . . . . . . . . . . 17 ( = if(𝑥𝐵, , 𝑔) → ((𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
16 fveq1 6862 . . . . . . . . . . . . . . . . . 18 (𝑔 = if(𝑥𝐵, , 𝑔) → (𝑔𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
1716eleq1d 2846 . . . . . . . . . . . . . . . . 17 (𝑔 = if(𝑥𝐵, , 𝑔) → ((𝑔𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
18 simpl 486 . . . . . . . . . . . . . . . . . 18 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (𝑥𝐵 → (𝑥) ∈ 𝐶))
1918imp 410 . . . . . . . . . . . . . . . . 17 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ 𝑥𝐵) → (𝑥) ∈ 𝐶)
20 simplrr 787 . . . . . . . . . . . . . . . . 17 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ ¬ 𝑥𝐵) → (𝑔𝑥) ∈ 𝐶)
2115, 17, 19, 20ifbothda 4518 . . . . . . . . . . . . . . . 16 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
2221exp32 424 . . . . . . . . . . . . . . 15 ((𝑥𝐵 → (𝑥) ∈ 𝐶) → (𝑥𝐴 → ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)))
2322ralimi2 3093 . . . . . . . . . . . . . 14 (∀𝑥𝐵 (𝑥) ∈ 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2413, 23syl 17 . . . . . . . . . . . . 13 (X𝑥𝐵 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2524adantl 485 . . . . . . . . . . . 12 ((𝐵𝐴X𝑥𝐵 𝐶) → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
26 ralim 3101 . . . . . . . . . . . 12 (∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2725, 26syl 17 . . . . . . . . . . 11 ((𝐵𝐴X𝑥𝐵 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
28 vex 3457 . . . . . . . . . . . . 13 𝑔 ∈ V
2928elixp 8882 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶 ↔ (𝑔 Fn 𝐴 ∧ ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶))
3029simprbi 501 . . . . . . . . . . 11 (𝑔X𝑥𝐴 𝐶 → ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶)
3127, 30impel 513 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
32 n0i 4292 . . . . . . . . . . . . 13 (𝑔X𝑥𝐴 𝐶 → ¬ X𝑥𝐴 𝐶 = ∅)
33 ixpprc 8897 . . . . . . . . . . . . 13 𝐴 ∈ V → X𝑥𝐴 𝐶 = ∅)
3432, 33nsyl2 141 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶𝐴 ∈ V)
3534adantl 485 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → 𝐴 ∈ V)
36 mptelixpg 8913 . . . . . . . . . . 11 (𝐴 ∈ V → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3735, 36syl 17 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3831, 37mpbird 259 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶)
3910, 38eqeltrid 2865 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶)
40 reseq1 5957 . . . . . . . . . 10 (𝑓 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝑓𝐵) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
41 iftrue 4485 . . . . . . . . . . . . . 14 (𝑧𝐵 → if(𝑧𝐵, , 𝑔) = )
4241fveq1d 6865 . . . . . . . . . . . . 13 (𝑧𝐵 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (𝑧))
4342mpteq2ia 5194 . . . . . . . . . . . 12 (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑧𝐵 ↦ (𝑧))
44 resmpt 6023 . . . . . . . . . . . . 13 (𝐵𝐴 → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
4544ad2antrr 736 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
46 ixpfn 8881 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 Fn 𝐵)
4746ad2antlr 737 . . . . . . . . . . . . 13 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → Fn 𝐵)
48 dffn5 6921 . . . . . . . . . . . . 13 ( Fn 𝐵 = (𝑧𝐵 ↦ (𝑧)))
4947, 48sylib 220 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝑧𝐵 ↦ (𝑧)))
5043, 45, 493eqtr4a 2822 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = )
5150, 11eqeltrdi 2869 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) ∈ V)
522, 40, 39, 51fvmptd3 6995 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5352, 50eqtr2d 2797 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
54 fveq2 6863 . . . . . . . . 9 (𝑦 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝐹𝑦) = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
5554rspceeqv 3604 . . . . . . . 8 (((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶 = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
5639, 53, 55syl2anc 593 . . . . . . 7 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
5756ex 416 . . . . . 6 ((𝐵𝐴X𝑥𝐵 𝐶) → (𝑔X𝑥𝐴 𝐶 → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
5857ralrimdva 3161 . . . . 5 (𝐵𝐴 → (𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
5958exlimdv 1952 . . . 4 (𝐵𝐴 → (∃𝑔 𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
605, 59biimtrid 244 . . 3 (𝐵𝐴 → (X𝑥𝐴 𝐶 ≠ ∅ → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6160imp 410 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
62 dffo3 7079 . 2 (𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶 ↔ (𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶 ∧ ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
634, 61, 62sylanbrc 592 1 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 208  wa 399   = wceq 1559  wex 1798  wcel 2141  wne 2956  wral 3075  wrex 3085  Vcvv 3453  wss 3904  c0 4285  ifcif 4479  cmpt 5180  cres 5647   Fn wfn 6512  wf 6513  ontowfo 6515  cfv 6517  Xcixp 8875
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1814  ax-4 1828  ax-5 1929  ax-6 1986  ax-7 2027  ax-8 2143  ax-9 2151  ax-10 2174  ax-11 2190  ax-12 2211  ax-ext 2733  ax-rep 5226  ax-sep 5245  ax-nul 5255  ax-pr 5389  ax-un 7714
This theorem depends on definitions:  df-bi 209  df-an 400  df-or 859  df-3an 1099  df-tru 1562  df-fal 1572  df-ex 1799  df-nf 1803  df-sb 2090  df-mo 2565  df-eu 2595  df-clab 2740  df-cleq 2753  df-clel 2836  df-nfc 2910  df-ne 2957  df-ral 3076  df-rex 3086  df-reu 3367  df-rab 3414  df-v 3455  df-sbc 3745  df-csb 3853  df-dif 3907  df-un 3909  df-in 3911  df-ss 3921  df-nul 4286  df-if 4480  df-sn 4582  df-pr 4584  df-op 4588  df-uni 4865  df-iun 4950  df-br 5100  df-opab 5162  df-mpt 5181  df-id 5540  df-xp 5651  df-rel 5652  df-cnv 5653  df-co 5654  df-dm 5655  df-rn 5656  df-res 5657  df-ima 5658  df-iota 6473  df-fun 6519  df-fn 6520  df-f 6521  df-f1 6522  df-fo 6523  df-f1o 6524  df-fv 6525  df-ixp 8876
This theorem is referenced by:  ptcmplem2  24093
  Copyright terms: Public domain W3C validator