Table of ContentsTable of Contents Mathbox for Frédéric Liné < Previous   Next >
Related theorems
Unicode version

Theorem dualalg 15131
Description: The dual of a Alg is a Alg.
Hypotheses
Ref Expression
dualcat2.1 |- D = (dom` T)
dualcat2.2 |- C = (cod` T)
dualcat2.3 |- J = (id` T)
dualcat2.4 |- R = (o` T)
Assertion
Ref Expression
dualalg |- (T e. Alg -> <.<.C, D>., <.J, {<.<.x, y>., z>. | (<.y, x>. e. dom R /\ z = (yRx))}>.>. e. Alg )
Distinct variable groups:   x,C,y,z   x,R,y,z   x,T,y,z

Proof of Theorem dualalg
StepHypRef Expression
1 visset 2295 . . . . . . . 8 |- x e. _V
2 visset 2295 . . . . . . . 8 |- y e. _V
3 opelcnvg 4140 . . . . . . . . 9 |- ((x e. _V /\ y e. _V) -> (<.x, y>. e. `'dom R <-> <.y, x>. e. dom R))
43bicomd 580 . . . . . . . 8 |- ((x e. _V /\ y e. _V) -> (<.y, x>. e. dom R <-> <.x, y>. e. `'dom R))
51, 2, 4mp2an 761 . . . . . . 7 |- (<.y, x>. e. dom R <-> <.x, y>. e. `'dom R)
65a1i 8 . . . . . 6 |- (T e. Alg -> (<.y, x>. e. dom R <-> <.x, y>. e. `'dom R))
76anbi1d 679 . . . . 5 |- (T e. Alg -> ((<.y, x>. e. dom R /\ z = (yRx)) <-> (<.x, y>. e. `'dom R /\ z = (yRx))))
87oprabbidv 4922 . . . 4 |- (T e. Alg -> {<.<.x, y>., z>. | (<.y, x>. e. dom R /\ z = (yRx))} = {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))})
98opeq2d 3165 . . 3 |- (T e. Alg -> <.J, {<.<.x, y>., z>. | (<.y, x>. e. dom R /\ z = (yRx))}>. = <.J, {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))}>.)
109opeq2d 3165 . 2 |- (T e. Alg -> <.<.C, D>., <.J, {<.<.x, y>., z>. | (<.y, x>. e. dom R /\ z = (yRx))}>.>. = <.<.C, D>., <.J, {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))}>.>.)
11 dualcat2.1 . . . . 5 |- D = (dom` T)
12 dualcat2.2 . . . . 5 |- C = (cod` T)
1311, 12dcsda 15080 . . . 4 |- (T e. Alg -> dom D = dom C)
14 dualcat2.3 . . . . 5 |- J = (id` T)
15 dualcat2.4 . . . . 5 |- R = (o` T)
16 eqid 1884 . . . . 5 |- dom D = dom D
17 eqid 1884 . . . . 5 |- dom J = dom J
1811, 12, 14, 15, 16, 17algi 15074 . . . 4 |- (T e. Alg -> ((D:dom D-->dom J /\ C:dom D-->dom J /\ J:dom J-->dom D) /\ (Fun R /\ dom R C_ (dom D X. dom D) /\ ran R C_ dom D)))
19 feq2 4552 . . . . . . . 8 |- (dom D = dom C -> (D:dom D-->dom J <-> D:dom C-->dom J))
2019biimpd 170 . . . . . . 7 |- (dom D = dom C -> (D:dom D-->dom J -> D:dom C-->dom J))
21 feq2 4552 . . . . . . . 8 |- (dom D = dom C -> (C:dom D-->dom J <-> C:dom C-->dom J))
2221biimpd 170 . . . . . . 7 |- (dom D = dom C -> (C:dom D-->dom J -> C:dom C-->dom J))
23 feq3 4553 . . . . . . . 8 |- (dom D = dom C -> (J:dom J-->dom D <-> J:dom J-->dom C))
2423biimpd 170 . . . . . . 7 |- (dom D = dom C -> (J:dom J-->dom D -> J:dom J-->dom C))
2520, 22, 243anim123d 1175 . . . . . 6 |- (dom D = dom C -> ((D:dom D-->dom J /\ C:dom D-->dom J /\ J:dom J-->dom D) -> (D:dom C-->dom J /\ C:dom C-->dom J /\ J:dom J-->dom C)))
26 idd 75 . . . . . . 7 |- (dom D = dom C -> (Fun R -> Fun R))
27 xpeq12 4020 . . . . . . . . 9 |- ((dom D = dom C /\ dom D = dom C) -> (dom D X. dom D) = (dom C X. dom C))
2827anidms 480 . . . . . . . 8 |- (dom D = dom C -> (dom D X. dom D) = (dom C X. dom C))
29 sseq2 2639 . . . . . . . . 9 |- ((dom D X. dom D) = (dom C X. dom C) -> (dom R C_ (dom D X. dom D) <-> dom R C_ (dom C X. dom C)))
3029biimpd 170 . . . . . . . 8 |- ((dom D X. dom D) = (dom C X. dom C) -> (dom R C_ (dom D X. dom D) -> dom R C_ (dom C X. dom C)))
3128, 30syl 12 . . . . . . 7 |- (dom D = dom C -> (dom R C_ (dom D X. dom D) -> dom R C_ (dom C X. dom C)))
32 sseq2 2639 . . . . . . . 8 |- (dom D = dom C -> (ran R C_ dom D <-> ran R C_ dom C))
3332biimpd 170 . . . . . . 7 |- (dom D = dom C -> (ran R C_ dom D -> ran R C_ dom C))
3426, 31, 333anim123d 1175 . . . . . 6 |- (dom D = dom C -> ((Fun R /\ dom R C_ (dom D X. dom D) /\ ran R C_ dom D) -> (Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C)))
3525, 34anim12d 617 . . . . 5 |- (dom D = dom C -> (((D:dom D-->dom J /\ C:dom D-->dom J /\ J:dom J-->dom D) /\ (Fun R /\ dom R C_ (dom D X. dom D) /\ ran R C_ dom D)) -> ((D:dom C-->dom J /\ C:dom C-->dom J /\ J:dom J-->dom C) /\ (Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C))))
36 simp2 877 . . . . . . 7 |- ((D:dom C-->dom J /\ C:dom C-->dom J /\ J:dom J-->dom C) -> C:dom C-->dom J)
37 simp1 876 . . . . . . 7 |- ((D:dom C-->dom J /\ C:dom C-->dom J /\ J:dom J-->dom C) -> D:dom C-->dom J)
38 simp3 878 . . . . . . 7 |- ((D:dom C-->dom J /\ C:dom C-->dom J /\ J:dom J-->dom C) -> J:dom J-->dom C)
3936, 37, 383jca 1050 . . . . . 6 |- ((D:dom C-->dom J /\ C:dom C-->dom J /\ J:dom J-->dom C) -> (C:dom C-->dom J /\ D:dom C-->dom J /\ J:dom J-->dom C))
40 cnvss 4134 . . . . . . . . . . . 12 |- (dom R C_ (dom C X. dom C) -> `'dom R C_ `'(dom C X. dom C))
41 sqpsym 14382 . . . . . . . . . . . . 13 |- `'(dom C X. dom C) C_ (dom C X. dom C)
42 sstr2 2623 . . . . . . . . . . . . . 14 |- (`'dom R C_ `'(dom C X. dom C) -> (`'(dom C X. dom C) C_ (dom C X. dom C) -> `'dom R C_ (dom C X. dom C)))
43 ssel 2615 . . . . . . . . . . . . . 14 |- (`'dom R C_ (dom C X. dom C) -> (<.x, y>. e. `'dom R -> <.x, y>. e. (dom C X. dom C)))
4442, 43syl6 25 . . . . . . . . . . . . 13 |- (`'dom R C_ `'(dom C X. dom C) -> (`'(dom C X. dom C) C_ (dom C X. dom C) -> (<.x, y>. e. `'dom R -> <.x, y>. e. (dom C X. dom C))))
4541, 44mpi 55 . . . . . . . . . . . 12 |- (`'dom R C_ `'(dom C X. dom C) -> (<.x, y>. e. `'dom R -> <.x, y>. e. (dom C X. dom C)))
4640, 45syl 12 . . . . . . . . . . 11 |- (dom R C_ (dom C X. dom C) -> (<.x, y>. e. `'dom R -> <.x, y>. e. (dom C X. dom C)))
47463ad2ant2 898 . . . . . . . . . 10 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> (<.x, y>. e. `'dom R -> <.x, y>. e. (dom C X. dom C)))
4847anim1d 619 . . . . . . . . 9 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> ((<.x, y>. e. `'dom R /\ z = (yRx)) -> (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))))
4948ssoprab2g 14333 . . . . . . . 8 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ {<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))})
50 oprex 4907 . . . . . . . . . . 11 |- (yRx) e. _V
51 twsvbdop 14332 . . . . . . . . . . 11 |- {<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))} = {<.<.x, y>., z>. | ((x e. dom C /\ y e. dom C) /\ z = (yRx))}
5250, 51fnoprab2 5064 . . . . . . . . . 10 |- {<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))} Fn (dom C X. dom C)
53 fnfun 4510 . . . . . . . . . 10 |- ({<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))} Fn (dom C X. dom C) -> Fun {<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))})
5452, 53ax-mp 7 . . . . . . . . 9 |- Fun {<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))}
5554a1i 8 . . . . . . . 8 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> Fun {<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))})
56 funss 4439 . . . . . . . 8 |- ({<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ {<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))} -> (Fun {<.<.x, y>., z>. | (<.x, y>. e. (dom C X. dom C) /\ z = (yRx))} -> Fun {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))}))
5749, 55, 56sylc 83 . . . . . . 7 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> Fun {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))})
58 relcnv 4301 . . . . . . . 8 |- Rel `'dom R
59 cnvxp 4332 . . . . . . . . . . . 12 |- `'(dom C X. dom C) = (dom C X. dom C)
60 sseq2 2639 . . . . . . . . . . . . 13 |- (`'(dom C X. dom C) = (dom C X. dom C) -> (`'dom R C_ `'(dom C X. dom C) <-> `'dom R C_ (dom C X. dom C)))
61 sseq1 2637 . . . . . . . . . . . . . . . 16 |- (`'dom R = dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} -> (`'dom R C_ (dom C X. dom C) <-> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C)))
6261biimpd 170 . . . . . . . . . . . . . . 15 |- (`'dom R = dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} -> (`'dom R C_ (dom C X. dom C) -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C)))
6362eqcoms 1887 . . . . . . . . . . . . . 14 |- (dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = `'dom R -> (`'dom R C_ (dom C X. dom C) -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C)))
6463com12 14 . . . . . . . . . . . . 13 |- (`'dom R C_ (dom C X. dom C) -> (dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = `'dom R -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C)))
6560, 64syl6bi 231 . . . . . . . . . . . 12 |- (`'(dom C X. dom C) = (dom C X. dom C) -> (`'dom R C_ `'(dom C X. dom C) -> (dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = `'dom R -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C))))
6659, 65ax-mp 7 . . . . . . . . . . 11 |- (`'dom R C_ `'(dom C X. dom C) -> (dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = `'dom R -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C)))
6740, 66syl 12 . . . . . . . . . 10 |- (dom R C_ (dom C X. dom C) -> (dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = `'dom R -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C)))
68673ad2ant2 898 . . . . . . . . 9 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> (dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = `'dom R -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C)))
6950dmoprabss6 14336 . . . . . . . . 9 |- (Rel `'dom R -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = `'dom R)
7068, 69syl5com 63 . . . . . . . 8 |- (Rel `'dom R -> ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C)))
7158, 70ax-mp 7 . . . . . . 7 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C))
72 elrel 4086 . . . . . . . . . . . . . . . . . . 19 |- ((Rel `'dom R /\ w e. `'dom R) -> E.xE.y w = <.x, y>.)
731, 2opelcnv 4143 . . . . . . . . . . . . . . . . . . . . . . 23 |- (<.x, y>. e. `'dom R <-> <.y, x>. e. dom R)
741, 2opswap 4374 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- U.`'{<.x, y>.} = <.y, x>.
75 simp1 876 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 |- ((Fun R /\ U.`'{<.x, y>.} = <.y, x>. /\ <.y, x>. e. dom R) -> Fun R)
76 eleq1 1957 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 |- (<.y, x>. = U.`'{<.x, y>.} -> (<.y, x>. e. dom R <-> U.`'{<.x, y>.} e. dom R))
7776biimpd 170 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 |- (<.y, x>. = U.`'{<.x, y>.} -> (<.y, x>. e. dom R -> U.`'{<.x, y>.} e. dom R))
7877eqcoms 1887 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 |- (U.`'{<.x, y>.} = <.y, x>. -> (<.y, x>. e. dom R -> U.`'{<.x, y>.} e. dom R))
7978imp 377 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 |- ((U.`'{<.x, y>.} = <.y, x>. /\ <.y, x>. e. dom R) -> U.`'{<.x, y>.} e. dom R)
80793adant1 894 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 |- ((Fun R /\ U.`'{<.x, y>.} = <.y, x>. /\ <.y, x>. e. dom R) -> U.`'{<.x, y>.} e. dom R)
81 fvelrn 4785 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 |- ((Fun R /\ U.`'{<.x, y>.} e. dom R) -> (R` U.`'{<.x, y>.}) e. ran R)
8275, 80, 81syl11anc 524 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 |- ((Fun R /\ U.`'{<.x, y>.} = <.y, x>. /\ <.y, x>. e. dom R) -> (R` U.`'{<.x, y>.}) e. ran R)
83823exp 1066 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 |- (Fun R -> (U.`'{<.x, y>.} = <.y, x>. -> (<.y, x>. e. dom R -> (R` U.`'{<.x, y>.}) e. ran R)))
8483a1i 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 |- (dom R C_ (dom C X. dom C) -> (Fun R -> (U.`'{<.x, y>.} = <.y, x>. -> (<.y, x>. e. dom R -> (R` U.`'{<.x, y>.}) e. ran R))))
8584com14 42 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- (<.y, x>. e. dom R -> (Fun R -> (U.`'{<.x, y>.} = <.y, x>. -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R))))
8685a1i 8 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (ran R C_ dom C -> (<.y, x>. e. dom R -> (Fun R -> (U.`'{<.x, y>.} = <.y, x>. -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R)))))
8786com14 42 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (U.`'{<.x, y>.} = <.y, x>. -> (<.y, x>. e. dom R -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R)))))
8874, 87ax-mp 7 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (<.y, x>. e. dom R -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R))))
8988a1d 15 . . . . . . . . . . . . . . . . . . . . . . 23 |- (<.y, x>. e. dom R -> (w = <.x, y>. -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R)))))
9073, 89sylbi 216 . . . . . . . . . . . . . . . . . . . . . 22 |- (<.x, y>. e. `'dom R -> (w = <.x, y>. -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R)))))
9190com12 14 . . . . . . . . . . . . . . . . . . . . 21 |- (w = <.x, y>. -> (<.x, y>. e. `'dom R -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R)))))
92 eleq1 1957 . . . . . . . . . . . . . . . . . . . . 21 |- (w = <.x, y>. -> (w e. `'dom R <-> <.x, y>. e. `'dom R))
93 sneq 3054 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 |- (w = <.x, y>. -> {w} = {<.x, y>.})
94 cnveq 4135 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 |- ({w} = {<.x, y>.} -> `'{w} = `'{<.x, y>.})
9593, 94syl 12 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- (w = <.x, y>. -> `'{w} = `'{<.x, y>.})
9695unieqd 3188 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (w = <.x, y>. -> U.`'{w} = U.`'{<.x, y>.})
9796fveq2d 4685 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (w = <.x, y>. -> (R` U.`'{w}) = (R` U.`'{<.x, y>.}))
9897eleq1d 1963 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (w = <.x, y>. -> ((R` U.`'{w}) e. ran R <-> (R` U.`'{<.x, y>.}) e. ran R))
9998imbi2d 674 . . . . . . . . . . . . . . . . . . . . . . 23 |- (w = <.x, y>. -> ((dom R C_ (dom C X. dom C) -> (R` U.`'{w}) e. ran R) <-> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R)))
10099imbi2d 674 . . . . . . . . . . . . . . . . . . . . . 22 |- (w = <.x, y>. -> ((ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{w}) e. ran R)) <-> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R))))
101100imbi2d 674 . . . . . . . . . . . . . . . . . . . . 21 |- (w = <.x, y>. -> ((Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{w}) e. ran R))) <-> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{<.x, y>.}) e. ran R)))))
10291, 92, 1013imtr4d 602 . . . . . . . . . . . . . . . . . . . 20 |- (w = <.x, y>. -> (w e. `'dom R -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{w}) e. ran R)))))
10310219.23aivv 1675 . . . . . . . . . . . . . . . . . . 19 |- (E.xE.y w = <.x, y>. -> (w e. `'dom R -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{w}) e. ran R)))))
10472, 103syl 12 . . . . . . . . . . . . . . . . . 18 |- ((Rel `'dom R /\ w e. `'dom R) -> (w e. `'dom R -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{w}) e. ran R)))))
105104ex 402 . . . . . . . . . . . . . . . . 17 |- (Rel `'dom R -> (w e. `'dom R -> (w e. `'dom R -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{w}) e. ran R))))))
106105pm2.43d 79 . . . . . . . . . . . . . . . 16 |- (Rel `'dom R -> (w e. `'dom R -> (Fun R -> (ran R C_ dom C -> (dom R C_ (dom C X. dom C) -> (R` U.`'{w}) e. ran R)))))
107106com25 48 . . . . . . . . . . . . . . 15 |- (Rel `'dom R -> (dom R C_ (dom C X. dom C) -> (Fun R -> (ran R C_ dom C -> (w e. `'dom R -> (R` U.`'{w}) e. ran R)))))
10858, 107ax-mp 7 . . . . . . . . . . . . . 14 |- (dom R C_ (dom C X. dom C) -> (Fun R -> (ran R C_ dom C -> (w e. `'dom R -> (R` U.`'{w}) e. ran R))))
109108com12 14 . . . . . . . . . . . . 13 |- (Fun R -> (dom R C_ (dom C X. dom C) -> (ran R C_ dom C -> (w e. `'dom R -> (R` U.`'{w}) e. ran R))))
1101093imp 1061 . . . . . . . . . . . 12 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> (w e. `'dom R -> (R` U.`'{w}) e. ran R))
111110r19.21aiv 2175 . . . . . . . . . . 11 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> A.w e. `' dom R(R` U.`'{w}) e. ran R)
112 eqid 1884 . . . . . . . . . . . 12 |- {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))} = {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))}
113112fopab2 4796 . . . . . . . . . . 11 |- (A.w e. `' dom R(R` U.`'{w}) e. ran R <-> {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))}:`'dom R-->ran R)
114111, 113sylib 215 . . . . . . . . . 10 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))}:`'dom R-->ran R)
115 frn 4569 . . . . . . . . . 10 |- ({<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))}:`'dom R-->ran R -> ran {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))} C_ ran R)
116114, 115syl 12 . . . . . . . . 9 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> ran {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))} C_ ran R)
117 simp3 878 . . . . . . . . 9 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> ran R C_ dom C)
118116, 117sstrd 2627 . . . . . . . 8 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> ran {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))} C_ dom C)
119 sneq 3054 . . . . . . . . . . . . . . . . 17 |- (<.x, y>. = w -> {<.x, y>.} = {w})
120 cnveq 4135 . . . . . . . . . . . . . . . . 17 |- ({<.x, y>.} = {w} -> `'{<.x, y>.} = `'{w})
121119, 120syl 12 . . . . . . . . . . . . . . . 16 |- (<.x, y>. = w -> `'{<.x, y>.} = `'{w})
122121unieqd 3188 . . . . . . . . . . . . . . 15 |- (<.x, y>. = w -> U.`'{<.x, y>.} = U.`'{w})
123122fveq2d 4685 . . . . . . . . . . . . . 14 |- (<.x, y>. = w -> (R` U.`'{<.x, y>.}) = (R` U.`'{w}))
12474eqcomi 1888 . . . . . . . . . . . . . . 15 |- <.y, x>. = U.`'{<.x, y>.}
125124fveq2i 4684 . . . . . . . . . . . . . 14 |- (R` <.y, x>.) = (R` U.`'{<.x, y>.})
126123, 125syl5eq 1940 . . . . . . . . . . . . 13 |- (<.x, y>. = w -> (R` <.y, x>.) = (R` U.`'{w}))
127126eqeq2d 1895 . . . . . . . . . . . 12 |- (<.x, y>. = w -> (z = (R` <.y, x>.) <-> z = (R` U.`'{w})))
128 df-opr 4886 . . . . . . . . . . . . 13 |- (yRx) = (R` <.y, x>.)
129128eqeq2i 1894 . . . . . . . . . . . 12 |- (z = (yRx) <-> z = (R` <.y, x>.))
130127, 129syl5bb 591 . . . . . . . . . . 11 |- (<.x, y>. = w -> (z = (yRx) <-> z = (R` U.`'{w})))
131130dfoprab4spop 14339 . . . . . . . . . 10 |- (Rel `'dom R -> {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))})
13258, 131ax-mp 7 . . . . . . . . 9 |- {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))}
133132rneqi 4187 . . . . . . . 8 |- ran {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} = ran {<.w, z>. | (w e. `'dom R /\ z = (R` U.`'{w}))}
134118, 133syl5ss 2661 . . . . . . 7 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> ran {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ dom C)
13557, 71, 1343jca 1050 . . . . . 6 |- ((Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C) -> (Fun {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} /\ dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C) /\ ran {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ dom C))
13639, 135anim12i 360 . . . . 5 |- (((D:dom C-->dom J /\ C:dom C-->dom J /\ J:dom J-->dom C) /\ (Fun R /\ dom R C_ (dom C X. dom C) /\ ran R C_ dom C)) -> ((C:dom C-->dom J /\ D:dom C-->dom J /\ J:dom J-->dom C) /\ (Fun {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} /\ dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C) /\ ran {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ dom C)))
13735, 136syl6 25 . . . 4 |- (dom D = dom C -> (((D:dom D-->dom J /\ C:dom D-->dom J /\ J:dom J-->dom D) /\ (Fun R /\ dom R C_ (dom D X. dom D) /\ ran R C_ dom D)) -> ((C:dom C-->dom J /\ D:dom C-->dom J /\ J:dom J-->dom C) /\ (Fun {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} /\ dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C) /\ ran {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ dom C))))
13813, 18, 137sylc 83 . . 3 |- (T e. Alg -> ((C:dom C-->dom J /\ D:dom C-->dom J /\ J:dom J-->dom C) /\ (Fun {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} /\ dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C) /\ ran {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ dom C)))
139 fvex 4689 . . . . . . . 8 |- (cod` T) e. _V
14012, 139eqeltri 1967 . . . . . . 7 |- C e. _V
141 fvex 4689 . . . . . . . 8 |- (dom` T) e. _V
14211, 141eqeltri 1967 . . . . . . 7 |- D e. _V
143 fvex 4689 . . . . . . . 8 |- (id` T) e. _V
14414, 143eqeltri 1967 . . . . . . 7 |- J e. _V
145140, 142, 1443pm3.2i 1048 . . . . . 6 |- (C e. _V /\ D e. _V /\ J e. _V)
146 fvex 4689 . . . . . . . . . 10 |- (o` T) e. _V
14715, 146eqeltri 1967 . . . . . . . . 9 |- R e. _V
148147dmex 4208 . . . . . . . 8 |- dom R e. _V
149148cnvex 4425 . . . . . . 7 |- `'dom R e. _V
150 oprabex2gpop 14337 . . . . . . 7 |- ((`'dom R e. _V /\ Rel `'dom R) -> {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} e. _V)
151149, 58, 150mp2an 761 . . . . . 6 |- {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} e. _V
152145, 151pm3.2i 307 . . . . 5 |- ((C e. _V /\ D e. _V /\ J e. _V) /\ {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} e. _V)
153152a1i 8 . . . 4 |- (T e. Alg -> ((C e. _V /\ D e. _V /\ J e. _V) /\ {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} e. _V))
154 eqid 1884 . . . . 5 |- dom C = dom C
155154, 17isalg 15068 . . . 4 |- (((C e. _V /\ D e. _V /\ J e. _V) /\ {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} e. _V) -> (<.<.C, D>., <.J, {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))}>.>. e. Alg <-> ((C:dom C-->dom J /\ D:dom C-->dom J /\ J:dom J-->dom C) /\ (Fun {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} /\ dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C) /\ ran {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ dom C))))
156153, 155syl 12 . . 3 |- (T e. Alg -> (<.<.C, D>., <.J, {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))}>.>. e. Alg <-> ((C:dom C-->dom J /\ D:dom C-->dom J /\ J:dom J-->dom C) /\ (Fun {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} /\ dom {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ (dom C X. dom C) /\ ran {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))} C_ dom C))))
157138, 156mpbird 213 . 2 |- (T e. Alg -> <.<.C, D>., <.J, {<.<.x, y>., z>. | (<.x, y>. e. `'dom R /\ z = (yRx))}>.>. e. Alg )
15810, 157eqeltrd 1971 1 |- (T e. Alg -> <.<.C, D>., <.J, {<.<.x, y>., z>. | (<.y, x>. e. dom R /\ z = (yRx))}>.>. e. Alg )
Colors of variables: wff set class
Syntax hints:   -> wi 3   <-> wb 163   /\ wa 240   /\ w3a 858   = wceq 1298   e. wcel 1300  E.wex 1326  A.wral 2105  _Vcvv 2292   C_ wss 2593  {csn 3044  <.cop 3046  U.cuni 3177  {copab 3395   X. cxp 3984  `'ccnv 3985  dom cdm 3986  ran crn 3987  Rel wrel 3991  Fun wfun 3992   Fn wfn 3993  -->wf 3994  ` cfv 3998  (class class class)co 4884  {copab2 4885   Alg calg 15058  domcdom_ 15059  codccod_ 15060  idcid_ 15061  oco_ 15062
This theorem is referenced by:  dualded 15132
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  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-rep 3428  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-f 4010  df-fo 4012  df-fv 4014  df-opr 4886  df-oprab 4887  df-1st 5020  df-2nd 5021  df-alg 15063  df-doma 15064  df-coda 15065  df-ida 15066  df-cmpa 15067
Copyright terms: Public domain