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

Theorem resixpfo 8860
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 8857 . . . 4 ((𝐵𝐴𝑓X𝑥𝐴 𝐶) → (𝑓𝐵) ∈ X𝑥𝐵 𝐶)
2 resixpfo.1 . . . 4 𝐹 = (𝑓X𝑥𝐴 𝐶 ↦ (𝑓𝐵))
31, 2fmptd 7047 . . 3 (𝐵𝐴𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
43adantr 480 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶)
5 n0 4303 . . . 4 (X𝑥𝐴 𝐶 ≠ ∅ ↔ ∃𝑔 𝑔X𝑥𝐴 𝐶)
6 eleq1w 2814 . . . . . . . . . . . 12 (𝑧 = 𝑥 → (𝑧𝐵𝑥𝐵))
76ifbid 4499 . . . . . . . . . . 11 (𝑧 = 𝑥 → if(𝑧𝐵, , 𝑔) = if(𝑥𝐵, , 𝑔))
8 id 22 . . . . . . . . . . 11 (𝑧 = 𝑥𝑧 = 𝑥)
97, 8fveq12d 6829 . . . . . . . . . 10 (𝑧 = 𝑥 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (if(𝑥𝐵, , 𝑔)‘𝑥))
109cbvmptv 5195 . . . . . . . . 9 (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥))
11 vex 3440 . . . . . . . . . . . . . . . 16 ∈ V
1211elixp 8828 . . . . . . . . . . . . . . 15 (X𝑥𝐵 𝐶 ↔ ( Fn 𝐵 ∧ ∀𝑥𝐵 (𝑥) ∈ 𝐶))
1312simprbi 496 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 → ∀𝑥𝐵 (𝑥) ∈ 𝐶)
14 fveq1 6821 . . . . . . . . . . . . . . . . . 18 ( = if(𝑥𝐵, , 𝑔) → (𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
1514eleq1d 2816 . . . . . . . . . . . . . . . . 17 ( = if(𝑥𝐵, , 𝑔) → ((𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
16 fveq1 6821 . . . . . . . . . . . . . . . . . 18 (𝑔 = if(𝑥𝐵, , 𝑔) → (𝑔𝑥) = (if(𝑥𝐵, , 𝑔)‘𝑥))
1716eleq1d 2816 . . . . . . . . . . . . . . . . 17 (𝑔 = if(𝑥𝐵, , 𝑔) → ((𝑔𝑥) ∈ 𝐶 ↔ (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
18 simpl 482 . . . . . . . . . . . . . . . . . 18 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (𝑥𝐵 → (𝑥) ∈ 𝐶))
1918imp 406 . . . . . . . . . . . . . . . . 17 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ 𝑥𝐵) → (𝑥) ∈ 𝐶)
20 simplrr 777 . . . . . . . . . . . . . . . . 17 ((((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) ∧ ¬ 𝑥𝐵) → (𝑔𝑥) ∈ 𝐶)
2115, 17, 19, 20ifbothda 4514 . . . . . . . . . . . . . . . 16 (((𝑥𝐵 → (𝑥) ∈ 𝐶) ∧ (𝑥𝐴 ∧ (𝑔𝑥) ∈ 𝐶)) → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
2221exp32 420 . . . . . . . . . . . . . . 15 ((𝑥𝐵 → (𝑥) ∈ 𝐶) → (𝑥𝐴 → ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)))
2322ralimi2 3064 . . . . . . . . . . . . . 14 (∀𝑥𝐵 (𝑥) ∈ 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2413, 23syl 17 . . . . . . . . . . . . 13 (X𝑥𝐵 𝐶 → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2524adantl 481 . . . . . . . . . . . 12 ((𝐵𝐴X𝑥𝐵 𝐶) → ∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
26 ralim 3072 . . . . . . . . . . . 12 (∀𝑥𝐴 ((𝑔𝑥) ∈ 𝐶 → (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
2725, 26syl 17 . . . . . . . . . . 11 ((𝐵𝐴X𝑥𝐵 𝐶) → (∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶 → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
28 vex 3440 . . . . . . . . . . . . 13 𝑔 ∈ V
2928elixp 8828 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶 ↔ (𝑔 Fn 𝐴 ∧ ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶))
3029simprbi 496 . . . . . . . . . . 11 (𝑔X𝑥𝐴 𝐶 → ∀𝑥𝐴 (𝑔𝑥) ∈ 𝐶)
3127, 30impel 505 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶)
32 n0i 4290 . . . . . . . . . . . . 13 (𝑔X𝑥𝐴 𝐶 → ¬ X𝑥𝐴 𝐶 = ∅)
33 ixpprc 8843 . . . . . . . . . . . . 13 𝐴 ∈ V → X𝑥𝐴 𝐶 = ∅)
3432, 33nsyl2 141 . . . . . . . . . . . 12 (𝑔X𝑥𝐴 𝐶𝐴 ∈ V)
3534adantl 481 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → 𝐴 ∈ V)
36 mptelixpg 8859 . . . . . . . . . . 11 (𝐴 ∈ V → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3735, 36syl 17 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶 ↔ ∀𝑥𝐴 (if(𝑥𝐵, , 𝑔)‘𝑥) ∈ 𝐶))
3831, 37mpbird 257 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑥𝐴 ↦ (if(𝑥𝐵, , 𝑔)‘𝑥)) ∈ X𝑥𝐴 𝐶)
3910, 38eqeltrid 2835 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶)
40 reseq1 5922 . . . . . . . . . 10 (𝑓 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝑓𝐵) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
41 iftrue 4481 . . . . . . . . . . . . . 14 (𝑧𝐵 → if(𝑧𝐵, , 𝑔) = )
4241fveq1d 6824 . . . . . . . . . . . . 13 (𝑧𝐵 → (if(𝑧𝐵, , 𝑔)‘𝑧) = (𝑧))
4342mpteq2ia 5186 . . . . . . . . . . . 12 (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) = (𝑧𝐵 ↦ (𝑧))
44 resmpt 5986 . . . . . . . . . . . . 13 (𝐵𝐴 → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
4544ad2antrr 726 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧𝐵 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))
46 ixpfn 8827 . . . . . . . . . . . . . 14 (X𝑥𝐵 𝐶 Fn 𝐵)
4746ad2antlr 727 . . . . . . . . . . . . 13 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → Fn 𝐵)
48 dffn5 6880 . . . . . . . . . . . . 13 ( Fn 𝐵 = (𝑧𝐵 ↦ (𝑧)))
4947, 48sylib 218 . . . . . . . . . . . 12 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝑧𝐵 ↦ (𝑧)))
5043, 45, 493eqtr4a 2792 . . . . . . . . . . 11 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) = )
5150, 11eqeltrdi 2839 . . . . . . . . . 10 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵) ∈ V)
522, 40, 39, 51fvmptd3 6952 . . . . . . . . 9 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))) = ((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ↾ 𝐵))
5352, 50eqtr2d 2767 . . . . . . . 8 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
54 fveq2 6822 . . . . . . . . 9 (𝑦 = (𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) → (𝐹𝑦) = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧))))
5554rspceeqv 3600 . . . . . . . 8 (((𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)) ∈ X𝑥𝐴 𝐶 = (𝐹‘(𝑧𝐴 ↦ (if(𝑧𝐵, , 𝑔)‘𝑧)))) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
5639, 53, 55syl2anc 584 . . . . . . 7 (((𝐵𝐴X𝑥𝐵 𝐶) ∧ 𝑔X𝑥𝐴 𝐶) → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
5756ex 412 . . . . . 6 ((𝐵𝐴X𝑥𝐵 𝐶) → (𝑔X𝑥𝐴 𝐶 → ∃𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
5857ralrimdva 3132 . . . . 5 (𝐵𝐴 → (𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
5958exlimdv 1934 . . . 4 (𝐵𝐴 → (∃𝑔 𝑔X𝑥𝐴 𝐶 → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
605, 59biimtrid 242 . . 3 (𝐵𝐴 → (X𝑥𝐴 𝐶 ≠ ∅ → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
6160imp 406 . 2 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦))
62 dffo3 7035 . 2 (𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶 ↔ (𝐹:X𝑥𝐴 𝐶X𝑥𝐵 𝐶 ∧ ∀X 𝑥𝐵 𝐶𝑦X 𝑥𝐴 𝐶 = (𝐹𝑦)))
634, 61, 62sylanbrc 583 1 ((𝐵𝐴X𝑥𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥𝐴 𝐶ontoX𝑥𝐵 𝐶)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395   = wceq 1541  wex 1780  wcel 2111  wne 2928  wral 3047  wrex 3056  Vcvv 3436  wss 3902  c0 4283  ifcif 4475  cmpt 5172  cres 5618   Fn wfn 6476  wf 6477  ontowfo 6479  cfv 6481  Xcixp 8821
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1968  ax-7 2009  ax-8 2113  ax-9 2121  ax-10 2144  ax-11 2160  ax-12 2180  ax-ext 2703  ax-rep 5217  ax-sep 5234  ax-nul 5244  ax-pr 5370  ax-un 7668
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3an 1088  df-tru 1544  df-fal 1554  df-ex 1781  df-nf 1785  df-sb 2068  df-mo 2535  df-eu 2564  df-clab 2710  df-cleq 2723  df-clel 2806  df-nfc 2881  df-ne 2929  df-ral 3048  df-rex 3057  df-reu 3347  df-rab 3396  df-v 3438  df-sbc 3742  df-csb 3851  df-dif 3905  df-un 3907  df-in 3909  df-ss 3919  df-nul 4284  df-if 4476  df-sn 4577  df-pr 4579  df-op 4583  df-uni 4860  df-iun 4943  df-br 5092  df-opab 5154  df-mpt 5173  df-id 5511  df-xp 5622  df-rel 5623  df-cnv 5624  df-co 5625  df-dm 5626  df-rn 5627  df-res 5628  df-ima 5629  df-iota 6437  df-fun 6483  df-fn 6484  df-f 6485  df-f1 6486  df-fo 6487  df-f1o 6488  df-fv 6489  df-ixp 8822
This theorem is referenced by:  ptcmplem2  23966
  Copyright terms: Public domain W3C validator