HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem fopabcos 4806
Description: Composition of two functions expressed as ordered-pair class abstractions.
Hypotheses
Ref Expression
fopabcos.1 |- C e. _V
fopabcos.2 |- D e. _V
fopabcos.3 |- F = {<.x, y>. | (x e. A /\ y = C)}
fopabcos.4 |- G = {<.x, y>. | (x e. B /\ y = D)}
Assertion
Ref Expression
fopabcos |- (ran G C_ A -> (F o. G) = {<.x, y>. | (x e. B /\ y = [_D / x]_C)})
Distinct variable groups:   x,y,A   x,B,y   y,C   y,D

Proof of Theorem fopabcos
StepHypRef Expression
1 visset 2295 . . . . . . . 8 |- z e. _V
2 fopabcos.2 . . . . . . . 8 |- D e. _V
3 fopabcos.4 . . . . . . . 8 |- G = {<.x, y>. | (x e. B /\ y = D)}
41, 2, 3fvopab4s 4746 . . . . . . 7 |- (z e. B -> (G` z) = [_z / x]_D)
54adantl 424 . . . . . 6 |- ((ran G C_ A /\ z e. B) -> (G` z) = [_z / x]_D)
62, 3fnopab2 4549 . . . . . . . . 9 |- G Fn B
7 fnfvelrn 4786 . . . . . . . . 9 |- ((G Fn B /\ z e. B) -> (G` z) e. ran G)
86, 7mpan 759 . . . . . . . 8 |- (z e. B -> (G` z) e. ran G)
98adantl 424 . . . . . . 7 |- ((ran G C_ A /\ z e. B) -> (G` z) e. ran G)
10 ssel 2615 . . . . . . . 8 |- (ran G C_ A -> ((G` z) e. ran G -> (G` z) e. A))
1110adantr 425 . . . . . . 7 |- ((ran G C_ A /\ z e. B) -> ((G` z) e. ran G -> (G` z) e. A))
129, 11mpd 29 . . . . . 6 |- ((ran G C_ A /\ z e. B) -> (G` z) e. A)
135, 12eqeltrrd 1972 . . . . 5 |- ((ran G C_ A /\ z e. B) -> [_z / x]_D e. A)
141, 2csbex 2549 . . . . . 6 |- [_z / x]_D e. _V
15 fopabcos.1 . . . . . 6 |- C e. _V
16 ax-17 1317 . . . . . . 7 |- (w e. z -> A.x w e. z)
171, 16hbcsb1 2568 . . . . . 6 |- (w e. [_z / x]_D -> A.x w e. [_z / x]_D)
18 fopabcos.3 . . . . . 6 |- F = {<.x, y>. | (x e. A /\ y = C)}
1914, 15, 17, 18fvopab4sf 4745 . . . . 5 |- ([_z / x]_D e. A -> (F` [_z / x]_D) = [_[_z / x]_D / x]_C)
2013, 19syl 12 . . . 4 |- ((ran G C_ A /\ z e. B) -> (F` [_z / x]_D) = [_[_z / x]_D / x]_C)
212, 3dmopab2 4550 . . . . . . . 8 |- dom G = B
2221eleq2i 1961 . . . . . . 7 |- (z e. dom G <-> z e. B)
2315, 18fnopab2 4549 . . . . . . . . 9 |- F Fn A
24 fnfun 4510 . . . . . . . . 9 |- (F Fn A -> Fun F)
2523, 24ax-mp 7 . . . . . . . 8 |- Fun F
26 fnfun 4510 . . . . . . . . 9 |- (G Fn B -> Fun G)
276, 26ax-mp 7 . . . . . . . 8 |- Fun G
28 fvco 4736 . . . . . . . 8 |- ((Fun F /\ Fun G /\ z e. dom G) -> ((F o. G)` z) = (F` (G` z)))
2925, 27, 28mp3an12 1181 . . . . . . 7 |- (z e. dom G -> ((F o. G)` z) = (F` (G` z)))
3022, 29sylbir 218 . . . . . 6 |- (z e. B -> ((F o. G)` z) = (F` (G` z)))
314fveq2d 4685 . . . . . 6 |- (z e. B -> (F` (G` z)) = (F` [_z / x]_D))
3230, 31eqtrd 1925 . . . . 5 |- (z e. B -> ((F o. G)` z) = (F` [_z / x]_D))
3332adantl 424 . . . 4 |- ((ran G C_ A /\ z e. B) -> ((F o. G)` z) = (F` [_z / x]_D))
342, 15csbex 2549 . . . . . . 7 |- [_D / x]_C e. _V
35 eqid 1884 . . . . . . 7 |- {<.x, y>. | (x e. B /\ y = [_D / x]_C)} = {<.x, y>. | (x e. B /\ y = [_D / x]_C)}
361, 34, 35fvopab4s 4746 . . . . . 6 |- (z e. B -> ({<.x, y>. | (x e. B /\ y = [_D / x]_C)}` z) = [_z / x]_[_D / x]_C)
372ax-gen 1305 . . . . . . 7 |- A.x D e. _V
38 csbnest1g 2582 . . . . . . 7 |- ((z e. _V /\ A.x D e. _V) -> [_z / x]_[_D / x]_C = [_[_z / x]_D / x]_C)
391, 37, 38mp2an 761 . . . . . 6 |- [_z / x]_[_D / x]_C = [_[_z / x]_D / x]_C
4036, 39syl6eq 1944 . . . . 5 |- (z e. B -> ({<.x, y>. | (x e. B /\ y = [_D / x]_C)}` z) = [_[_z / x]_D / x]_C)
4140adantl 424 . . . 4 |- ((ran G C_ A /\ z e. B) -> ({<.x, y>. | (x e. B /\ y = [_D / x]_C)}` z) = [_[_z / x]_D / x]_C)
4220, 33, 413eqtr4d 1937 . . 3 |- ((ran G C_ A /\ z e. B) -> ((F o. G)` z) = ({<.x, y>. | (x e. B /\ y = [_D / x]_C)}` z))
4342r19.21aiva 2176 . 2 |- (ran G C_ A -> A.z e. B ((F o. G)` z) = ({<.x, y>. | (x e. B /\ y = [_D / x]_C)}` z))
44 ax-17 1317 . . . 4 |- (w e. (F o. G) -> A.z w e. (F o. G))
45 ax-17 1317 . . . 4 |- (w e. {<.x, y>. | (x e. B /\ y = [_D / x]_C)} -> A.z w e. {<.x, y>. | (x e. B /\ y = [_D / x]_C)})
4644, 45eqfnfv2f 4770 . . 3 |- (((F o. G) Fn B /\ {<.x, y>. | (x e. B /\ y = [_D / x]_C)} Fn B) -> ((F o. G) = {<.x, y>. | (x e. B /\ y = [_D / x]_C)} <-> A.z e. B ((F o. G)` z) = ({<.x, y>. | (x e. B /\ y = [_D / x]_C)}` z)))
47 fnco 4521 . . . 4 |- ((F Fn A /\ G Fn B /\ ran G C_ A) -> (F o. G) Fn B)
4823, 6, 47mp3an12 1181 . . 3 |- (ran G C_ A -> (F o. G) Fn B)
4934, 35fnopab2 4549 . . 3 |- {<.x, y>. | (x e. B /\ y = [_D / x]_C)} Fn B
5046, 48, 49sylancl 525 . 2 |- (ran G C_ A -> ((F o. G) = {<.x, y>. | (x e. B /\ y = [_D / x]_C)} <-> A.z e. B ((F o. G)` z) = ({<.x, y>. | (x e. B /\ y = [_D / x]_C)}` z)))
5143, 50mpbird 213 1 |- (ran G C_ A -> (F o. G) = {<.x, y>. | (x e. B /\ y = [_D / x]_C)})
Colors of variables: wff set class
Syntax hints:   -> wi 3   <-> wb 163   /\ wa 240  A.wal 1296   = wceq 1298   e. wcel 1300  A.wral 2105  _Vcvv 2292  [_csb 2540   C_ wss 2593  {copab 3395  dom cdm 3986  ran crn 3987   o. ccom 3990  Fun wfun 3992   Fn wfn 3993  ` cfv 3998
This theorem is referenced by:  oprcn 9255  kbass2 11688  kbass5 11691
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-5 1302  ax-7 1304  ax-gen 1305  ax-8 1306  ax-9 1307  ax-10 1308  ax-11 1309  ax-12 1310  ax-13 1311  ax-14 1312  ax-17 1317  ax-4 1319  ax-5o 1321  ax-6o 1324  ax-9o 1481  ax-10o 1500  ax-16 1580  ax-11o 1588  ax-ext 1865  ax-sep 3438  ax-nul 3445  ax-pow 3481  ax-pr 3524  ax-un 3790
This theorem depends on definitions:  df-bi 164  df-or 241  df-an 242  df-3an 860  df-ex 1327  df-sb 1536  df-eu 1775  df-mo 1776  df-clab 1872  df-cleq 1877  df-clel 1880  df-ne 2019  df-ral 2109  df-rex 2110  df-v 2294  df-sbc 2454  df-csb 2541  df-dif 2597  df-un 2600  df-in 2603  df-ss 2605  df-nul 2876  df-pw 3035  df-sn 3049  df-pr 3050  df-op 3053  df-uni 3178  df-br 3339  df-opab 3396  df-id 3586  df-xp 4000  df-rel 4001  df-cnv 4002  df-co 4003  df-dm 4004  df-rn 4005  df-res 4006  df-ima 4007  df-fun 4008  df-fn 4009  df-fv 4014
Copyright terms: Public domain