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

Theorem fliftfun 7320
Description: The function 𝐹 is the unique function defined by 𝐹‘𝐴 = 𝐵, provided that the well-definedness condition holds. (Contributed by Mario Carneiro, 23-Dec-2016.)
Hypotheses
Ref Expression
flift.1 𝐹 = ran (𝑥 ∈ 𝑋 ↦ ⟨𝐴, 𝐵⟩)
flift.2 ((𝜑 ∧ 𝑥 ∈ 𝑋) → 𝐴 ∈ 𝑅)
flift.3 ((𝜑 ∧ 𝑥 ∈ 𝑋) → 𝐵 ∈ 𝑆)
fliftfun.4 (𝑥 = 𝑦 → 𝐴 = 𝐶)
fliftfun.5 (𝑥 = 𝑦 → 𝐵 = 𝐷)
Assertion
Ref Expression
fliftfun (𝜑 → (Fun 𝐹 ↔ ∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷)))
Distinct variable groups:   𝑦,𝐴   𝑦,𝐵   𝑥,𝐶   𝑥,𝑦,𝑅   𝑥,𝐷   𝑦,𝐹   𝜑,𝑥,𝑦   𝑥,𝑋,𝑦   𝑥,𝑆,𝑦
Allowed substitution hints:   𝐴(𝑥)   𝐵(𝑥)   𝐶(𝑦)   𝐷(𝑦)   𝐹(𝑥)

Proof of Theorem fliftfun
Dummy variables 𝑣 𝑢 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 nfv 1946 . . 3 Ⅎ𝑥𝜑
2 flift.1 . . . . 5 𝐹 = ran (𝑥 ∈ 𝑋 ↦ ⟨𝐴, 𝐵⟩)
3 nfmpt1 5203 . . . . . 6 Ⅎ𝑥(𝑥 ∈ 𝑋 ↦ ⟨𝐴, 𝐵⟩)
43nfrn 5933 . . . . 5 Ⅎ𝑥ran (𝑥 ∈ 𝑋 ↦ ⟨𝐴, 𝐵⟩)
52, 4nfcxfr 2920 . . . 4 Ⅎ𝑥𝐹
65nffun 6562 . . 3 Ⅎ𝑥Fun 𝐹
7 fveq2 6885 . . . . . . 7 (𝐴 = 𝐶 → (𝐹‘𝐴) = (𝐹‘𝐶))
8 simplr 781 . . . . . . . . 9 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → Fun 𝐹)
9 flift.2 . . . . . . . . . . 11 ((𝜑 ∧ 𝑥 ∈ 𝑋) → 𝐴 ∈ 𝑅)
10 flift.3 . . . . . . . . . . 11 ((𝜑 ∧ 𝑥 ∈ 𝑋) → 𝐵 ∈ 𝑆)
112, 9, 10fliftel1 7318 . . . . . . . . . 10 ((𝜑 ∧ 𝑥 ∈ 𝑋) → 𝐴𝐹𝐵)
1211ad2ant2r 760 . . . . . . . . 9 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → 𝐴𝐹𝐵)
13 funbrfv 6933 . . . . . . . . 9 (Fun 𝐹 → (𝐴𝐹𝐵 → (𝐹‘𝐴) = 𝐵))
148, 12, 13sylc 66 . . . . . . . 8 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → (𝐹‘𝐴) = 𝐵)
15 simprr 785 . . . . . . . . . . 11 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → 𝑦 ∈ 𝑋)
16 eqidd 2761 . . . . . . . . . . 11 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → 𝐶 = 𝐶)
17 eqidd 2761 . . . . . . . . . . 11 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → 𝐷 = 𝐷)
18 fliftfun.4 . . . . . . . . . . . . . 14 (𝑥 = 𝑦 → 𝐴 = 𝐶)
1918eqeq2d 2771 . . . . . . . . . . . . 13 (𝑥 = 𝑦 → (𝐶 = 𝐴 ↔ 𝐶 = 𝐶))
20 fliftfun.5 . . . . . . . . . . . . . 14 (𝑥 = 𝑦 → 𝐵 = 𝐷)
2120eqeq2d 2771 . . . . . . . . . . . . 13 (𝑥 = 𝑦 → (𝐷 = 𝐵 ↔ 𝐷 = 𝐷))
2219, 21anbi12d 644 . . . . . . . . . . . 12 (𝑥 = 𝑦 → ((𝐶 = 𝐴 ∧ 𝐷 = 𝐵) ↔ (𝐶 = 𝐶 ∧ 𝐷 = 𝐷)))
2322rspcev 3576 . . . . . . . . . . 11 ((𝑦 ∈ 𝑋 ∧ (𝐶 = 𝐶 ∧ 𝐷 = 𝐷)) → ∃𝑥 ∈ 𝑋 (𝐶 = 𝐴 ∧ 𝐷 = 𝐵))
2415, 16, 17, 23syl12anc 850 . . . . . . . . . 10 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → ∃𝑥 ∈ 𝑋 (𝐶 = 𝐴 ∧ 𝐷 = 𝐵))
252, 9, 10fliftel 7317 . . . . . . . . . . 11 (𝜑 → (𝐶𝐹𝐷 ↔ ∃𝑥 ∈ 𝑋 (𝐶 = 𝐴 ∧ 𝐷 = 𝐵)))
2625ad2antrr 739 . . . . . . . . . 10 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → (𝐶𝐹𝐷 ↔ ∃𝑥 ∈ 𝑋 (𝐶 = 𝐴 ∧ 𝐷 = 𝐵)))
2724, 26mpbird 260 . . . . . . . . 9 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → 𝐶𝐹𝐷)
28 funbrfv 6933 . . . . . . . . 9 (Fun 𝐹 → (𝐶𝐹𝐷 → (𝐹‘𝐶) = 𝐷))
298, 27, 28sylc 66 . . . . . . . 8 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → (𝐹‘𝐶) = 𝐷)
3014, 29eqeq12d 2776 . . . . . . 7 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → ((𝐹‘𝐴) = (𝐹‘𝐶) ↔ 𝐵 = 𝐷))
317, 30imbitrid 247 . . . . . 6 (((𝜑 ∧ Fun 𝐹) ∧ (𝑥 ∈ 𝑋 ∧ 𝑦 ∈ 𝑋)) → (𝐴 = 𝐶 → 𝐵 = 𝐷))
3231anassrs 473 . . . . 5 ((((𝜑 ∧ Fun 𝐹) ∧ 𝑥 ∈ 𝑋) ∧ 𝑦 ∈ 𝑋) → (𝐴 = 𝐶 → 𝐵 = 𝐷))
3332ralrimiva 3154 . . . 4 (((𝜑 ∧ Fun 𝐹) ∧ 𝑥 ∈ 𝑋) → ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷))
3433exp31 425 . . 3 (𝜑 → (Fun 𝐹 → (𝑥 ∈ 𝑋 → ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷))))
351, 6, 34ralrimd 3267 . 2 (𝜑 → (Fun 𝐹 → ∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷)))
362, 9, 10fliftel 7317 . . . . . . . . 9 (𝜑 → (𝑧𝐹𝑢 ↔ ∃𝑥 ∈ 𝑋 (𝑧 = 𝐴 ∧ 𝑢 = 𝐵)))
372, 9, 10fliftel 7317 . . . . . . . . . 10 (𝜑 → (𝑧𝐹𝑣 ↔ ∃𝑥 ∈ 𝑋 (𝑧 = 𝐴 ∧ 𝑣 = 𝐵)))
3818eqeq2d 2771 . . . . . . . . . . . 12 (𝑥 = 𝑦 → (𝑧 = 𝐴 ↔ 𝑧 = 𝐶))
3920eqeq2d 2771 . . . . . . . . . . . 12 (𝑥 = 𝑦 → (𝑣 = 𝐵 ↔ 𝑣 = 𝐷))
4038, 39anbi12d 644 . . . . . . . . . . 11 (𝑥 = 𝑦 → ((𝑧 = 𝐴 ∧ 𝑣 = 𝐵) ↔ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷)))
4140cbvrexvw 3241 . . . . . . . . . 10 (∃𝑥 ∈ 𝑋 (𝑧 = 𝐴 ∧ 𝑣 = 𝐵) ↔ ∃𝑦 ∈ 𝑋 (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))
4237, 41bitrdi 290 . . . . . . . . 9 (𝜑 → (𝑧𝐹𝑣 ↔ ∃𝑦 ∈ 𝑋 (𝑧 = 𝐶 ∧ 𝑣 = 𝐷)))
4336, 42anbi12d 644 . . . . . . . 8 (𝜑 → ((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) ↔ (∃𝑥 ∈ 𝑋 (𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ ∃𝑦 ∈ 𝑋 (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))))
4443biimpd 232 . . . . . . 7 (𝜑 → ((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) → (∃𝑥 ∈ 𝑋 (𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ ∃𝑦 ∈ 𝑋 (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))))
45 reeanv 3234 . . . . . . . 8 (∃𝑥 ∈ 𝑋 ∃𝑦 ∈ 𝑋 ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷)) ↔ (∃𝑥 ∈ 𝑋 (𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ ∃𝑦 ∈ 𝑋 (𝑧 = 𝐶 ∧ 𝑣 = 𝐷)))
46 r19.29 3125 . . . . . . . . . 10 ((∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ∃𝑥 ∈ 𝑋 ∃𝑦 ∈ 𝑋 ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → ∃𝑥 ∈ 𝑋 (∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ∃𝑦 ∈ 𝑋 ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))))
47 r19.29 3125 . . . . . . . . . . . 12 ((∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ∃𝑦 ∈ 𝑋 ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → ∃𝑦 ∈ 𝑋 ((𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))))
48 eqtr2 2781 . . . . . . . . . . . . . . . . 17 ((𝑧 = 𝐴 ∧ 𝑧 = 𝐶) → 𝐴 = 𝐶)
4948ad2ant2r 760 . . . . . . . . . . . . . . . 16 (((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷)) → 𝐴 = 𝐶)
5049imim1i 64 . . . . . . . . . . . . . . 15 ((𝐴 = 𝐶 → 𝐵 = 𝐷) → (((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷)) → 𝐵 = 𝐷))
5150imp 412 . . . . . . . . . . . . . 14 (((𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → 𝐵 = 𝐷)
52 simprlr 792 . . . . . . . . . . . . . 14 (((𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → 𝑢 = 𝐵)
53 simprrr 794 . . . . . . . . . . . . . 14 (((𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → 𝑣 = 𝐷)
5451, 52, 533eqtr4d 2805 . . . . . . . . . . . . 13 (((𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → 𝑢 = 𝑣)
5554rexlimivw 3159 . . . . . . . . . . . 12 (∃𝑦 ∈ 𝑋 ((𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → 𝑢 = 𝑣)
5647, 55syl 18 . . . . . . . . . . 11 ((∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ∃𝑦 ∈ 𝑋 ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → 𝑢 = 𝑣)
5756rexlimivw 3159 . . . . . . . . . 10 (∃𝑥 ∈ 𝑋 (∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ∃𝑦 ∈ 𝑋 ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → 𝑢 = 𝑣)
5846, 57syl 18 . . . . . . . . 9 ((∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) ∧ ∃𝑥 ∈ 𝑋 ∃𝑦 ∈ 𝑋 ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷))) → 𝑢 = 𝑣)
5958ex 418 . . . . . . . 8 (∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) → (∃𝑥 ∈ 𝑋 ∃𝑦 ∈ 𝑋 ((𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ (𝑧 = 𝐶 ∧ 𝑣 = 𝐷)) → 𝑢 = 𝑣))
6045, 59biimtrrid 246 . . . . . . 7 (∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) → ((∃𝑥 ∈ 𝑋 (𝑧 = 𝐴 ∧ 𝑢 = 𝐵) ∧ ∃𝑦 ∈ 𝑋 (𝑧 = 𝐶 ∧ 𝑣 = 𝐷)) → 𝑢 = 𝑣))
6144, 60syl9 78 . . . . . 6 (𝜑 → (∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) → ((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) → 𝑢 = 𝑣)))
6261alrimdv 1961 . . . . 5 (𝜑 → (∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) → ∀𝑣((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) → 𝑢 = 𝑣)))
6362alrimdv 1961 . . . 4 (𝜑 → (∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) → ∀𝑢∀𝑣((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) → 𝑢 = 𝑣)))
6463alrimdv 1961 . . 3 (𝜑 → (∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) → ∀𝑧∀𝑢∀𝑣((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) → 𝑢 = 𝑣)))
652, 9, 10fliftrel 7316 . . . . 5 (𝜑 → 𝐹 ⊆ (𝑅 × 𝑆))
66 relxp 5668 . . . . 5 Rel (𝑅 × 𝑆)
67 relss 5757 . . . . 5 (𝐹 ⊆ (𝑅 × 𝑆) → (Rel (𝑅 × 𝑆) → Rel 𝐹))
6865, 66, 67mpisyl 22 . . . 4 (𝜑 → Rel 𝐹)
69 dffun2 6548 . . . . 5 (Fun 𝐹 ↔ (Rel 𝐹 ∧ ∀𝑧∀𝑢∀𝑣((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) → 𝑢 = 𝑣)))
7069baib 545 . . . 4 (Rel 𝐹 → (Fun 𝐹 ↔ ∀𝑧∀𝑢∀𝑣((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) → 𝑢 = 𝑣)))
7168, 70syl 18 . . 3 (𝜑 → (Fun 𝐹 ↔ ∀𝑧∀𝑢∀𝑣((𝑧𝐹𝑢 ∧ 𝑧𝐹𝑣) → 𝑢 = 𝑣)))
7264, 71sylibrd 262 . 2 (𝜑 → (∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷) → Fun 𝐹))
7335, 72impbid 215 1 (𝜑 → (Fun 𝐹 ↔ ∀𝑥 ∈ 𝑋 ∀𝑦 ∈ 𝑋 (𝐴 = 𝐶 → 𝐵 = 𝐷)))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   → wi 4   ↔ wb 209   ∧ wa 401  ∀wal 1567   = wceq 1569   ∈ wcel 2144  ∀wral 3076  ∃wrex 3086   ⊆ wss 3895  ⟨cop 4834   class class class wbr 5102   ↦ cmpt 5185   × cxp 5648  ran crn 5651  Rel wrel 5655  Fun wfun 6532  ‘cfv 6538
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1827  ax-4 1841  ax-5 1942  ax-6 1999  ax-7 2040  ax-8 2146  ax-9 2154  ax-10 2177  ax-11 2193  ax-12 2212  ax-ext 2732  ax-sep 5248  ax-pr 5390
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3an 1105  df-tru 1572  df-fal 1582  df-ex 1812  df-nf 1816  df-sb 2099  df-mo 2564  df-eu 2594  df-clab 2739  df-cleq 2752  df-clel 2835  df-nfc 2909  df-ral 3077  df-rex 3087  df-rab 3413  df-v 3452  df-sbc 3739  df-csb 3847  df-ss 3896  df-dif 4047  df-in 4091  df-un 4151  df-nul 4279  df-if 4482  df-sn 4585  df-pr 4587  df-op 4835  df-uni 4867  df-br 5103  df-opab 5167  df-mpt 5186  df-id 5545  df-xp 5656  df-rel 5657  df-cnv 5658  df-co 5659  df-dm 5660  df-rn 5661  df-res 5662  df-ima 5663  df-iota 6494  df-fun 6540  df-fn 6541  df-f 6542  df-fv 6546
This theorem is used by:  fliftfund  7321  fliftfuns  7322  qliftfun  8826
  Copyright terms: Public domain W3C validator