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

Theorem resixpfo 8995
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 8992 . . . 4 ((𝐵 ⊆ 𝐴 ∧ 𝑓 ∈ X𝑥 ∈ 𝐴 𝐶) → (𝑓 ↾ 𝐵) ∈ X𝑥 ∈ 𝐵 𝐶)
2 resixpfo.1 . . . 4 𝐹 = (𝑓 ∈ X𝑥 ∈ 𝐴 𝐶 ↦ (𝑓 ↾ 𝐵))
31, 2fmptd 7141 . . 3 (𝐵 ⊆ 𝐴 → 𝐹:X𝑥 ∈ 𝐴 𝐶⟶X𝑥 ∈ 𝐵 𝐶)
43adantr 486 . 2 ((𝐵 ⊆ 𝐴 ∧ X𝑥 ∈ 𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥 ∈ 𝐴 𝐶⟶X𝑥 ∈ 𝐵 𝐶)
5 n0 4303 . . . 4 (X𝑥 ∈ 𝐴 𝐶 ≠ ∅ ↔ ∃𝑔 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶)
6 eleq1w 2847 . . . . . . . . . . . 12 (𝑧 = 𝑥 → (𝑧 ∈ 𝐵 ↔ 𝑥 ∈ 𝐵))
76ifbid 4509 . . . . . . . . . . 11 (𝑧 = 𝑥 → if(𝑧 ∈ 𝐵, ℎ, 𝑔) = if(𝑥 ∈ 𝐵, ℎ, 𝑔))
8 id 23 . . . . . . . . . . 11 (𝑧 = 𝑥 → 𝑧 = 𝑥)
97, 8fveq12d 6918 . . . . . . . . . 10 (𝑧 = 𝑥 → (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧) = (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥))
109cbvmptv 5213 . . . . . . . . 9 (𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) = (𝑥 ∈ 𝐴 ↦ (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥))
11 vex 3458 . . . . . . . . . . . . . . . 16 ℎ ∈ V
1211elixp 8963 . . . . . . . . . . . . . . 15 (ℎ ∈ X𝑥 ∈ 𝐵 𝐶 ↔ (ℎ Fn 𝐵 ∧ ∀𝑥 ∈ 𝐵 (ℎ‘𝑥) ∈ 𝐶))
1312simprbi 503 . . . . . . . . . . . . . 14 (ℎ ∈ X𝑥 ∈ 𝐵 𝐶 → ∀𝑥 ∈ 𝐵 (ℎ‘𝑥) ∈ 𝐶)
14 fveq1 6910 . . . . . . . . . . . . . . . . . 18 (ℎ = if(𝑥 ∈ 𝐵, ℎ, 𝑔) → (ℎ‘𝑥) = (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥))
1514eleq1d 2849 . . . . . . . . . . . . . . . . 17 (ℎ = if(𝑥 ∈ 𝐵, ℎ, 𝑔) → ((ℎ‘𝑥) ∈ 𝐶 ↔ (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
16 fveq1 6910 . . . . . . . . . . . . . . . . . 18 (𝑔 = if(𝑥 ∈ 𝐵, ℎ, 𝑔) → (𝑔‘𝑥) = (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥))
1716eleq1d 2849 . . . . . . . . . . . . . . . . 17 (𝑔 = if(𝑥 ∈ 𝐵, ℎ, 𝑔) → ((𝑔‘𝑥) ∈ 𝐶 ↔ (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
18 simpl 488 . . . . . . . . . . . . . . . . . 18 (((𝑥 ∈ 𝐵 → (ℎ‘𝑥) ∈ 𝐶) ∧ (𝑥 ∈ 𝐴 ∧ (𝑔‘𝑥) ∈ 𝐶)) → (𝑥 ∈ 𝐵 → (ℎ‘𝑥) ∈ 𝐶))
1918imp 412 . . . . . . . . . . . . . . . . 17 ((((𝑥 ∈ 𝐵 → (ℎ‘𝑥) ∈ 𝐶) ∧ (𝑥 ∈ 𝐴 ∧ (𝑔‘𝑥) ∈ 𝐶)) ∧ 𝑥 ∈ 𝐵) → (ℎ‘𝑥) ∈ 𝐶)
20 simplrr 790 . . . . . . . . . . . . . . . . 17 ((((𝑥 ∈ 𝐵 → (ℎ‘𝑥) ∈ 𝐶) ∧ (𝑥 ∈ 𝐴 ∧ (𝑔‘𝑥) ∈ 𝐶)) ∧ ¬ 𝑥 ∈ 𝐵) → (𝑔‘𝑥) ∈ 𝐶)
2115, 17, 19, 20ifbothda 4524 . . . . . . . . . . . . . . . 16 (((𝑥 ∈ 𝐵 → (ℎ‘𝑥) ∈ 𝐶) ∧ (𝑥 ∈ 𝐴 ∧ (𝑔‘𝑥) ∈ 𝐶)) → (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶)
2221exp32 426 . . . . . . . . . . . . . . 15 ((𝑥 ∈ 𝐵 → (ℎ‘𝑥) ∈ 𝐶) → (𝑥 ∈ 𝐴 → ((𝑔‘𝑥) ∈ 𝐶 → (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶)))
2322ralimi2 3098 . . . . . . . . . . . . . 14 (∀𝑥 ∈ 𝐵 (ℎ‘𝑥) ∈ 𝐶 → ∀𝑥 ∈ 𝐴 ((𝑔‘𝑥) ∈ 𝐶 → (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
2413, 23syl 18 . . . . . . . . . . . . 13 (ℎ ∈ X𝑥 ∈ 𝐵 𝐶 → ∀𝑥 ∈ 𝐴 ((𝑔‘𝑥) ∈ 𝐶 → (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
2524adantl 487 . . . . . . . . . . . 12 ((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) → ∀𝑥 ∈ 𝐴 ((𝑔‘𝑥) ∈ 𝐶 → (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
26 ralim 3106 . . . . . . . . . . . 12 (∀𝑥 ∈ 𝐴 ((𝑔‘𝑥) ∈ 𝐶 → (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶) → (∀𝑥 ∈ 𝐴 (𝑔‘𝑥) ∈ 𝐶 → ∀𝑥 ∈ 𝐴 (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
2725, 26syl 18 . . . . . . . . . . 11 ((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) → (∀𝑥 ∈ 𝐴 (𝑔‘𝑥) ∈ 𝐶 → ∀𝑥 ∈ 𝐴 (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
28 vex 3458 . . . . . . . . . . . . 13 𝑔 ∈ V
2928elixp 8963 . . . . . . . . . . . 12 (𝑔 ∈ X𝑥 ∈ 𝐴 𝐶 ↔ (𝑔 Fn 𝐴 ∧ ∀𝑥 ∈ 𝐴 (𝑔‘𝑥) ∈ 𝐶))
3029simprbi 503 . . . . . . . . . . 11 (𝑔 ∈ X𝑥 ∈ 𝐴 𝐶 → ∀𝑥 ∈ 𝐴 (𝑔‘𝑥) ∈ 𝐶)
3127, 30impel 515 . . . . . . . . . 10 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ∀𝑥 ∈ 𝐴 (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶)
32 n0i 4289 . . . . . . . . . . . . 13 (𝑔 ∈ X𝑥 ∈ 𝐴 𝐶 → ¬ X𝑥 ∈ 𝐴 𝐶 = ∅)
33 ixpprc 8978 . . . . . . . . . . . . 13 (¬ 𝐴 ∈ V → X𝑥 ∈ 𝐴 𝐶 = ∅)
3432, 33nsyl2 142 . . . . . . . . . . . 12 (𝑔 ∈ X𝑥 ∈ 𝐴 𝐶 → 𝐴 ∈ V)
3534adantl 487 . . . . . . . . . . 11 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → 𝐴 ∈ V)
36 mptelixpg 8994 . . . . . . . . . . 11 (𝐴 ∈ V → ((𝑥 ∈ 𝐴 ↦ (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥)) ∈ X𝑥 ∈ 𝐴 𝐶 ↔ ∀𝑥 ∈ 𝐴 (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
3735, 36syl 18 . . . . . . . . . 10 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ((𝑥 ∈ 𝐴 ↦ (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥)) ∈ X𝑥 ∈ 𝐴 𝐶 ↔ ∀𝑥 ∈ 𝐴 (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥) ∈ 𝐶))
3831, 37mpbird 260 . . . . . . . . 9 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → (𝑥 ∈ 𝐴 ↦ (if(𝑥 ∈ 𝐵, ℎ, 𝑔)‘𝑥)) ∈ X𝑥 ∈ 𝐴 𝐶)
3910, 38eqeltrid 2868 . . . . . . . 8 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → (𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) ∈ X𝑥 ∈ 𝐴 𝐶)
40 reseq1 5976 . . . . . . . . . 10 (𝑓 = (𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) → (𝑓 ↾ 𝐵) = ((𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) ↾ 𝐵))
41 iftrue 4491 . . . . . . . . . . . . . 14 (𝑧 ∈ 𝐵 → if(𝑧 ∈ 𝐵, ℎ, 𝑔) = ℎ)
4241fveq1d 6913 . . . . . . . . . . . . 13 (𝑧 ∈ 𝐵 → (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧) = (ℎ‘𝑧))
4342mpteq2ia 5204 . . . . . . . . . . . 12 (𝑧 ∈ 𝐵 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) = (𝑧 ∈ 𝐵 ↦ (ℎ‘𝑧))
44 resmpt 6042 . . . . . . . . . . . . 13 (𝐵 ⊆ 𝐴 → ((𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧 ∈ 𝐵 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)))
4544ad2antrr 739 . . . . . . . . . . . 12 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ((𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) ↾ 𝐵) = (𝑧 ∈ 𝐵 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)))
46 ixpfn 8962 . . . . . . . . . . . . . 14 (ℎ ∈ X𝑥 ∈ 𝐵 𝐶 → ℎ Fn 𝐵)
4746ad2antlr 740 . . . . . . . . . . . . 13 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ℎ Fn 𝐵)
48 dffn5 6969 . . . . . . . . . . . . 13 (ℎ Fn 𝐵 ↔ ℎ = (𝑧 ∈ 𝐵 ↦ (ℎ‘𝑧)))
4947, 48sylib 221 . . . . . . . . . . . 12 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ℎ = (𝑧 ∈ 𝐵 ↦ (ℎ‘𝑧)))
5043, 45, 493eqtr4a 2824 . . . . . . . . . . 11 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ((𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) ↾ 𝐵) = ℎ)
5150, 11eqeltrdi 2872 . . . . . . . . . 10 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ((𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) ↾ 𝐵) ∈ V)
522, 40, 39, 51fvmptd3 7043 . . . . . . . . 9 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → (𝐹‘(𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧))) = ((𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) ↾ 𝐵))
5352, 50eqtr2d 2799 . . . . . . . 8 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ℎ = (𝐹‘(𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧))))
54 fveq2 6911 . . . . . . . . 9 (𝑦 = (𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) → (𝐹‘𝑦) = (𝐹‘(𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧))))
5554rspceeqv 3602 . . . . . . . 8 (((𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)) ∈ X𝑥 ∈ 𝐴 𝐶 ∧ ℎ = (𝐹‘(𝑧 ∈ 𝐴 ↦ (if(𝑧 ∈ 𝐵, ℎ, 𝑔)‘𝑧)))) → ∃𝑦 ∈ X 𝑥 ∈ 𝐴 𝐶ℎ = (𝐹‘𝑦))
5639, 53, 55syl2anc 596 . . . . . . 7 (((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) ∧ 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶) → ∃𝑦 ∈ X 𝑥 ∈ 𝐴 𝐶ℎ = (𝐹‘𝑦))
5756ex 418 . . . . . 6 ((𝐵 ⊆ 𝐴 ∧ ℎ ∈ X𝑥 ∈ 𝐵 𝐶) → (𝑔 ∈ X𝑥 ∈ 𝐴 𝐶 → ∃𝑦 ∈ X 𝑥 ∈ 𝐴 𝐶ℎ = (𝐹‘𝑦)))
5857ralrimdva 3166 . . . . 5 (𝐵 ⊆ 𝐴 → (𝑔 ∈ X𝑥 ∈ 𝐴 𝐶 → ∀ℎ ∈ X 𝑥 ∈ 𝐵 𝐶∃𝑦 ∈ X 𝑥 ∈ 𝐴 𝐶ℎ = (𝐹‘𝑦)))
5958exlimdv 1968 . . . 4 (𝐵 ⊆ 𝐴 → (∃𝑔 𝑔 ∈ X𝑥 ∈ 𝐴 𝐶 → ∀ℎ ∈ X 𝑥 ∈ 𝐵 𝐶∃𝑦 ∈ X 𝑥 ∈ 𝐴 𝐶ℎ = (𝐹‘𝑦)))
605, 59biimtrid 245 . . 3 (𝐵 ⊆ 𝐴 → (X𝑥 ∈ 𝐴 𝐶 ≠ ∅ → ∀ℎ ∈ X 𝑥 ∈ 𝐵 𝐶∃𝑦 ∈ X 𝑥 ∈ 𝐴 𝐶ℎ = (𝐹‘𝑦)))
6160imp 412 . 2 ((𝐵 ⊆ 𝐴 ∧ X𝑥 ∈ 𝐴 𝐶 ≠ ∅) → ∀ℎ ∈ X 𝑥 ∈ 𝐵 𝐶∃𝑦 ∈ X 𝑥 ∈ 𝐴 𝐶ℎ = (𝐹‘𝑦))
62 dffo3 7129 . 2 (𝐹:X𝑥 ∈ 𝐴 𝐶⟶ontoX𝑥 ∈ 𝐵 𝐶 ↔ (𝐹:X𝑥 ∈ 𝐴 𝐶⟶X𝑥 ∈ 𝐵 𝐶 ∧ ∀ℎ ∈ X 𝑥 ∈ 𝐵 𝐶∃𝑦 ∈ X 𝑥 ∈ 𝐴 𝐶ℎ = (𝐹‘𝑦)))
634, 61, 62sylanbrc 595 1 ((𝐵 ⊆ 𝐴 ∧ X𝑥 ∈ 𝐴 𝐶 ≠ ∅) → 𝐹:X𝑥 ∈ 𝐴 𝐶⟶ontoX𝑥 ∈ 𝐵 𝐶)
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  ¬ wn 3   → wi 4   ↔ wb 209   ∧ wa 401   = wceq 1570  ∃wex 1812   ∈ wcel 2147   ≠ wne 2959  ∀wral 3080  ∃wrex 3090  Vcvv 3454   ⊆ wss 3900  ∅c0 4281  ifcif 4485   ↦ cmpt 5190   ↾ cres 5658   Fn wfn 6556  ⟶wf 6557  ⟶ontowfo 6559  ‘cfv 6561  Xcixp 8956
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1945  ax-6 2002  ax-7 2043  ax-8 2149  ax-9 2157  ax-10 2180  ax-11 2197  ax-12 2216  ax-ext 2735  ax-rep 5236  ax-sep 5253  ax-nul 5264  ax-pr 5396  ax-un 7778
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-nf 1817  df-sb 2102  df-mo 2567  df-eu 2597  df-clab 2742  df-cleq 2755  df-clel 2839  df-nfc 2913  df-ne 2960  df-ral 3081  df-rex 3091  df-reu 3370  df-rab 3417  df-v 3456  df-sbc 3743  df-csb 3852  df-ss 3901  df-dif 4050  df-in 4094  df-un 4154  df-nul 4282  df-if 4486  df-sn 4589  df-pr 4591  df-op 4839  df-uni 4871  df-iun 4956  df-br 5107  df-opab 5172  df-mpt 5191  df-id 5551  df-xp 5662  df-rel 5663  df-cnv 5664  df-co 5665  df-dm 5666  df-rn 5667  df-res 5668  df-ima 5669  df-iota 6515  df-fun 6563  df-fn 6564  df-f 6565  df-f1 6566  df-fo 6567  df-f1o 6568  df-fv 6569  df-ixp 8957
This theorem is used by:  ptcmplem2  24405
  Copyright terms: Public domain W3C validator