NFE Home New Foundations Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  NFE Home  >  Th. List  >  fnpprod GIF version

Theorem fnpprod 5844
Description: Functionhood law for parallel product. (Contributed by SF, 24-Feb-2015.)
Assertion
Ref Expression
fnpprod ⊢ ((F Fn A ∧ G Fn B) → PProd (F, G) Fn (A × B))

Proof of Theorem fnpprod
Dummy variables a b c d e f g h x y z are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 ee4anv 1915 . . . . . . . . 9 ⊢ (∃a∃b∃e∃f(∃c∃d(x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ ∃g∃h(x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) ↔ (∃a∃b∃c∃d(x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ ∃e∃f∃g∃h(x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))))
2 ee4anv 1915 . . . . . . . . . . 11 ⊢ (∃c∃d∃g∃h((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) ↔ (∃c∃d(x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ ∃g∃h(x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))))
322exbii 1583 . . . . . . . . . 10 ⊢ (∃e∃f∃c∃d∃g∃h((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) ↔ ∃e∃f(∃c∃d(x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ ∃g∃h(x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))))
432exbii 1583 . . . . . . . . 9 ⊢ (∃a∃b∃e∃f∃c∃d∃g∃h((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) ↔ ∃a∃b∃e∃f(∃c∃d(x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ ∃g∃h(x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))))
5 brpprod 5840 . . . . . . . . . 10 ⊢ (x PProd (F, G)y ↔ ∃a∃b∃c∃d(x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)))
6 brpprod 5840 . . . . . . . . . 10 ⊢ (x PProd (F, G)z ↔ ∃e∃f∃g∃h(x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)))
75, 6anbi12i 678 . . . . . . . . 9 ⊢ ((x PProd (F, G)y ∧ x PProd (F, G)z) ↔ (∃a∃b∃c∃d(x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ ∃e∃f∃g∃h(x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))))
81, 4, 73bitr4ri 269 . . . . . . . 8 ⊢ ((x PProd (F, G)y ∧ x PProd (F, G)z) ↔ ∃a∃b∃e∃f∃c∃d∃g∃h((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))))
9 an42 798 . . . . . . . . . . . . . . . . . . . . . 22 ⊢ (((aFc ∧ bGd) ∧ (aFg ∧ bGh)) ↔ ((aFc ∧ aFg) ∧ (bGh ∧ bGd)))
10 fununiq 5518 . . . . . . . . . . . . . . . . . . . . . . . 24 ⊢ ((Fun F ∧ aFc ∧ aFg) → c = g)
11103expib 1154 . . . . . . . . . . . . . . . . . . . . . . 23 ⊢ (Fun F → ((aFc ∧ aFg) → c = g))
12 fununiq 5518 . . . . . . . . . . . . . . . . . . . . . . . . 25 ⊢ ((Fun G ∧ bGh ∧ bGd) → h = d)
1312eqcomd 2358 . . . . . . . . . . . . . . . . . . . . . . . 24 ⊢ ((Fun G ∧ bGh ∧ bGd) → d = h)
14133expib 1154 . . . . . . . . . . . . . . . . . . . . . . 23 ⊢ (Fun G → ((bGh ∧ bGd) → d = h))
1511, 14im2anan9 808 . . . . . . . . . . . . . . . . . . . . . 22 ⊢ ((Fun F ∧ Fun G) → (((aFc ∧ aFg) ∧ (bGh ∧ bGd)) → (c = g ∧ d = h)))
169, 15syl5bi 208 . . . . . . . . . . . . . . . . . . . . 21 ⊢ ((Fun F ∧ Fun G) → (((aFc ∧ bGd) ∧ (aFg ∧ bGh)) → (c = g ∧ d = h)))
1716exp3acom23 1372 . . . . . . . . . . . . . . . . . . . 20 ⊢ ((Fun F ∧ Fun G) → ((aFg ∧ bGh) → ((aFc ∧ bGd) → (c = g ∧ d = h))))
18 breq1 4643 . . . . . . . . . . . . . . . . . . . . . . 23 ⊢ (e = a → (eFg ↔ aFg))
19 breq1 4643 . . . . . . . . . . . . . . . . . . . . . . 23 ⊢ (f = b → (fGh ↔ bGh))
2018, 19bi2anan9 843 . . . . . . . . . . . . . . . . . . . . . 22 ⊢ ((e = a ∧ f = b) → ((eFg ∧ fGh) ↔ (aFg ∧ bGh)))
2120adantr 451 . . . . . . . . . . . . . . . . . . . . 21 ⊢ (((e = a ∧ f = b) ∧ z = ⟨g, h⟩) → ((eFg ∧ fGh) ↔ (aFg ∧ bGh)))
22 eqeq2 2362 . . . . . . . . . . . . . . . . . . . . . . . 24 ⊢ (z = ⟨g, h⟩ → (⟨c, d⟩ = z ↔ ⟨c, d⟩ = ⟨g, h⟩))
23 opth 4603 . . . . . . . . . . . . . . . . . . . . . . . 24 ⊢ (⟨c, d⟩ = ⟨g, h⟩ ↔ (c = g ∧ d = h))
2422, 23syl6bb 252 . . . . . . . . . . . . . . . . . . . . . . 23 ⊢ (z = ⟨g, h⟩ → (⟨c, d⟩ = z ↔ (c = g ∧ d = h)))
2524imbi2d 307 . . . . . . . . . . . . . . . . . . . . . 22 ⊢ (z = ⟨g, h⟩ → (((aFc ∧ bGd) → ⟨c, d⟩ = z) ↔ ((aFc ∧ bGd) → (c = g ∧ d = h))))
2625adantl 452 . . . . . . . . . . . . . . . . . . . . 21 ⊢ (((e = a ∧ f = b) ∧ z = ⟨g, h⟩) → (((aFc ∧ bGd) → ⟨c, d⟩ = z) ↔ ((aFc ∧ bGd) → (c = g ∧ d = h))))
2721, 26imbi12d 311 . . . . . . . . . . . . . . . . . . . 20 ⊢ (((e = a ∧ f = b) ∧ z = ⟨g, h⟩) → (((eFg ∧ fGh) → ((aFc ∧ bGd) → ⟨c, d⟩ = z)) ↔ ((aFg ∧ bGh) → ((aFc ∧ bGd) → (c = g ∧ d = h)))))
2817, 27syl5ibrcom 213 . . . . . . . . . . . . . . . . . . 19 ⊢ ((Fun F ∧ Fun G) → (((e = a ∧ f = b) ∧ z = ⟨g, h⟩) → ((eFg ∧ fGh) → ((aFc ∧ bGd) → ⟨c, d⟩ = z))))
2928exp3a 425 . . . . . . . . . . . . . . . . . 18 ⊢ ((Fun F ∧ Fun G) → ((e = a ∧ f = b) → (z = ⟨g, h⟩ → ((eFg ∧ fGh) → ((aFc ∧ bGd) → ⟨c, d⟩ = z)))))
30293impd 1165 . . . . . . . . . . . . . . . . 17 ⊢ ((Fun F ∧ Fun G) → (((e = a ∧ f = b) ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → ((aFc ∧ bGd) → ⟨c, d⟩ = z)))
3130com23 72 . . . . . . . . . . . . . . . 16 ⊢ ((Fun F ∧ Fun G) → ((aFc ∧ bGd) → (((e = a ∧ f = b) ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → ⟨c, d⟩ = z)))
32 eqeq1 2359 . . . . . . . . . . . . . . . . . . . . 21 ⊢ (x = ⟨a, b⟩ → (x = ⟨e, f⟩ ↔ ⟨a, b⟩ = ⟨e, f⟩))
33 eqcom 2355 . . . . . . . . . . . . . . . . . . . . . 22 ⊢ (⟨a, b⟩ = ⟨e, f⟩ ↔ ⟨e, f⟩ = ⟨a, b⟩)
34 opth 4603 . . . . . . . . . . . . . . . . . . . . . 22 ⊢ (⟨e, f⟩ = ⟨a, b⟩ ↔ (e = a ∧ f = b))
3533, 34bitri 240 . . . . . . . . . . . . . . . . . . . . 21 ⊢ (⟨a, b⟩ = ⟨e, f⟩ ↔ (e = a ∧ f = b))
3632, 35syl6bb 252 . . . . . . . . . . . . . . . . . . . 20 ⊢ (x = ⟨a, b⟩ → (x = ⟨e, f⟩ ↔ (e = a ∧ f = b)))
37363anbi1d 1256 . . . . . . . . . . . . . . . . . . 19 ⊢ (x = ⟨a, b⟩ → ((x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) ↔ ((e = a ∧ f = b) ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))))
3837adantr 451 . . . . . . . . . . . . . . . . . 18 ⊢ ((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩) → ((x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) ↔ ((e = a ∧ f = b) ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))))
39 eqeq1 2359 . . . . . . . . . . . . . . . . . . 19 ⊢ (y = ⟨c, d⟩ → (y = z ↔ ⟨c, d⟩ = z))
4039adantl 452 . . . . . . . . . . . . . . . . . 18 ⊢ ((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩) → (y = z ↔ ⟨c, d⟩ = z))
4138, 40imbi12d 311 . . . . . . . . . . . . . . . . 17 ⊢ ((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩) → (((x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → y = z) ↔ (((e = a ∧ f = b) ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → ⟨c, d⟩ = z)))
4241imbi2d 307 . . . . . . . . . . . . . . . 16 ⊢ ((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩) → (((aFc ∧ bGd) → ((x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → y = z)) ↔ ((aFc ∧ bGd) → (((e = a ∧ f = b) ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → ⟨c, d⟩ = z))))
4331, 42syl5ibrcom 213 . . . . . . . . . . . . . . 15 ⊢ ((Fun F ∧ Fun G) → ((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩) → ((aFc ∧ bGd) → ((x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → y = z))))
4443exp3a 425 . . . . . . . . . . . . . 14 ⊢ ((Fun F ∧ Fun G) → (x = ⟨a, b⟩ → (y = ⟨c, d⟩ → ((aFc ∧ bGd) → ((x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → y = z)))))
45443impd 1165 . . . . . . . . . . . . 13 ⊢ ((Fun F ∧ Fun G) → ((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) → ((x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh)) → y = z)))
4645imp3a 420 . . . . . . . . . . . 12 ⊢ ((Fun F ∧ Fun G) → (((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) → y = z))
4746exlimdvv 1637 . . . . . . . . . . 11 ⊢ ((Fun F ∧ Fun G) → (∃g∃h((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) → y = z))
4847exlimdvv 1637 . . . . . . . . . 10 ⊢ ((Fun F ∧ Fun G) → (∃c∃d∃g∃h((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) → y = z))
4948exlimdvv 1637 . . . . . . . . 9 ⊢ ((Fun F ∧ Fun G) → (∃e∃f∃c∃d∃g∃h((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) → y = z))
5049exlimdvv 1637 . . . . . . . 8 ⊢ ((Fun F ∧ Fun G) → (∃a∃b∃e∃f∃c∃d∃g∃h((x = ⟨a, b⟩ ∧ y = ⟨c, d⟩ ∧ (aFc ∧ bGd)) ∧ (x = ⟨e, f⟩ ∧ z = ⟨g, h⟩ ∧ (eFg ∧ fGh))) → y = z))
518, 50syl5bi 208 . . . . . . 7 ⊢ ((Fun F ∧ Fun G) → ((x PProd (F, G)y ∧ x PProd (F, G)z) → y = z))
5251alrimiv 1631 . . . . . 6 ⊢ ((Fun F ∧ Fun G) → ∀z((x PProd (F, G)y ∧ x PProd (F, G)z) → y = z))
5352alrimivv 1632 . . . . 5 ⊢ ((Fun F ∧ Fun G) → ∀x∀y∀z((x PProd (F, G)y ∧ x PProd (F, G)z) → y = z))
54 dffun2 5120 . . . . 5 ⊢ (Fun PProd (F, G) ↔ ∀x∀y∀z((x PProd (F, G)y ∧ x PProd (F, G)z) → y = z))
5553, 54sylibr 203 . . . 4 ⊢ ((Fun F ∧ Fun G) → Fun PProd (F, G))
56 dmpprod 5841 . . . . 5 ⊢ dom PProd (F, G) = (dom F × dom G)
57 xpeq12 4804 . . . . 5 ⊢ ((dom F = A ∧ dom G = B) → (dom F × dom G) = (A × B))
5856, 57syl5eq 2397 . . . 4 ⊢ ((dom F = A ∧ dom G = B) → dom PProd (F, G) = (A × B))
5955, 58anim12i 549 . . 3 ⊢ (((Fun F ∧ Fun G) ∧ (dom F = A ∧ dom G = B)) → (Fun PProd (F, G) ∧ dom PProd (F, G) = (A × B)))
6059an4s 799 . 2 ⊢ (((Fun F ∧ dom F = A) ∧ (Fun G ∧ dom G = B)) → (Fun PProd (F, G) ∧ dom PProd (F, G) = (A × B)))
61 df-fn 4791 . . 3 ⊢ (F Fn A ↔ (Fun F ∧ dom F = A))
62 df-fn 4791 . . 3 ⊢ (G Fn B ↔ (Fun G ∧ dom G = B))
6361, 62anbi12i 678 . 2 ⊢ ((F Fn A ∧ G Fn B) ↔ ((Fun F ∧ dom F = A) ∧ (Fun G ∧ dom G = B)))
64 df-fn 4791 . 2 ⊢ ( PProd (F, G) Fn (A × B) ↔ (Fun PProd (F, G) ∧ dom PProd (F, G) = (A × B)))
6560, 63, 643imtr4i 257 1 ⊢ ((F Fn A ∧ G Fn B) → PProd (F, G) Fn (A × B))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   → wi 4   ↔ wb 176   ∧ wa 358   ∧ w3a 934  ∀wal 1540  ∃wex 1541   = wceq 1642  ⟨cop 4562   class class class wbr 4640   × cxp 4771  dom cdm 4773  Fun wfun 4776   Fn wfn 4777   PProd cpprod 5738
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1546  ax-5 1557  ax-17 1616  ax-9 1654  ax-8 1675  ax-13 1712  ax-14 1714  ax-6 1729  ax-7 1734  ax-11 1746  ax-12 1925  ax-ext 2334  ax-nin 4079  ax-xp 4080  ax-cnv 4081  ax-1c 4082  ax-sset 4083  ax-si 4084  ax-ins2 4085  ax-ins3 4086  ax-typlower 4087  ax-sn 4088
This proof depends on definitions:  df-bi 177  df-or 359  df-an 360  df-3or 935  df-3an 936  df-nan 1288  df-tru 1319  df-ex 1542  df-nf 1545  df-sb 1649  df-eu 2208  df-mo 2209  df-clab 2340  df-cleq 2346  df-clel 2349  df-nfc 2479  df-ne 2519  df-ral 2620  df-rex 2621  df-reu 2622  df-rmo 2623  df-rab 2624  df-v 2862  df-sbc 3048  df-nin 3212  df-compl 3213  df-in 3214  df-un 3215  df-dif 3216  df-symdif 3217  df-ss 3260  df-pss 3262  df-nul 3552  df-if 3664  df-pw 3725  df-sn 3742  df-pr 3743  df-uni 3893  df-int 3928  df-opk 4059  df-1c 4137  df-pw1 4138  df-uni1 4139  df-xpk 4186  df-cnvk 4187  df-ins2k 4188  df-ins3k 4189  df-imak 4190  df-cok 4191  df-p6 4192  df-sik 4193  df-ssetk 4194  df-imagek 4195  df-idk 4196  df-iota 4340  df-0c 4378  df-addc 4379  df-nnc 4380  df-fin 4381  df-lefin 4441  df-ltfin 4442  df-ncfin 4443  df-tfin 4444  df-evenfin 4445  df-oddfin 4446  df-sfin 4447  df-spfin 4448  df-phi 4566  df-op 4567  df-proj1 4568  df-proj2 4569  df-opab 4624  df-br 4641  df-1st 4724  df-co 4727  df-ima 4728  df-id 4768  df-xp 4785  df-cnv 4786  df-rn 4787  df-dm 4788  df-fun 4790  df-fn 4791  df-2nd 4798  df-txp 5737  df-pprod 5739
This theorem is used by:  f1opprod  5845
  Copyright terms: Public domain W3C validator