set M = { [[a,b],f] where a, b is Element of F1(), f is Element of F2() : P1[a,b,f] } ;
consider a0 being Element of F1();
consider f0 being Element of F2() such that
A4:
( P1[a0,a0,f0] & ( for b being Element of F1()
for g being Element of F2() holds
( ( P1[a0,b,g] implies F3(g,f0) = g ) & ( P1[b,a0,g] implies F3(f0,g) = g ) ) ) )
by A2;
A5:
[[a0,a0],f0] in { [[a,b],f] where a, b is Element of F1(), f is Element of F2() : P1[a,b,f] }
by A4;
{ [[a,b],f] where a, b is Element of F1(), f is Element of F2() : P1[a,b,f] } c= [:[:F1(),F1():],F2():]
proof
let x be
set ;
:: according to TARSKI:def 3 :: thesis: ( not x in { [[a,b],f] where a, b is Element of F1(), f is Element of F2() : P1[a,b,f] } or x in [:[:F1(),F1():],F2():] )
assume
x in { [[a,b],f] where a, b is Element of F1(), f is Element of F2() : P1[a,b,f] }
;
:: thesis: x in [:[:F1(),F1():],F2():]
then
ex
a,
b being
Element of
F1() ex
f being
Element of
F2() st
(
x = [[a,b],f] &
P1[
a,
b,
f] )
;
hence
x in [:[:F1(),F1():],F2():]
;
:: thesis: verum
end;
then reconsider M = { [[a,b],f] where a, b is Element of F1(), f is Element of F2() : P1[a,b,f] } as non empty Subset of [:[:F1(),F1():],F2():] by A5;
A6:
now let m be
Element of
M;
:: thesis: ( m = [[(m `11 ),(m `12 )],(m `2 )] & P1[m `11 ,m `12 ,m `2 ] )
m in M
;
then consider a,
b being
Element of
F1(),
f being
Element of
F2()
such that A7:
(
m = [[a,b],f] &
P1[
a,
b,
f] )
;
(
m `11 = a &
m `12 = b &
m `2 = f )
by A7, MCART_1:7, MCART_1:89;
hence
(
m = [[(m `11 ),(m `12 )],(m `2 )] &
P1[
m `11 ,
m `12 ,
m `2 ] )
by A7;
:: thesis: verum end;
deffunc H1( Element of M) -> Element of F1() = $1 `11 ;
consider DM being Function of M,F1() such that
A8:
for m being Element of M holds DM . m = H1(m)
from FUNCT_2:sch 4();
deffunc H2( Element of M) -> Element of F1() = $1 `12 ;
consider CM being Function of M,F1() such that
A9:
for m being Element of M holds CM . m = H2(m)
from FUNCT_2:sch 4();
deffunc H3( set , set ) -> set = [[($2 `11 ),($1 `12 )],F3(($1 `2 ),($2 `2 ))];
defpred S1[ set , set ] means ( $1 `11 = $2 `12 & $1 in M & $2 in M );
A10:
now let x,
y be
set ;
:: thesis: ( S1[x,y] implies H3(x,y) in M )assume A11:
S1[
x,
y]
;
:: thesis: H3(x,y) in Mthen consider ax,
bx being
Element of
F1(),
fx being
Element of
F2()
such that A12:
(
x = [[ax,bx],fx] &
P1[
ax,
bx,
fx] )
;
consider ay,
b2 being
Element of
F1(),
fy being
Element of
F2()
such that A13:
(
y = [[ay,b2],fy] &
P1[
ay,
b2,
fy] )
by A11;
A14:
(
x `11 = ax &
x `12 = bx &
y `11 = ay &
y `12 = b2 &
x `2 = fx &
y `2 = fy )
by A12, A13, MCART_1:7, MCART_1:89;
then
(
F3(
fx,
fy)
in F2() &
P1[
ay,
bx,
F3(
fx,
fy)] )
by A1, A11, A12, A13;
hence
H3(
x,
y)
in M
by A14;
:: thesis: verum end;
consider CC being PartFunc of [:M,M:],M such that
A15:
for x, y being set holds
( [x,y] in dom CC iff ( x in M & y in M & S1[x,y] ) )
and
A16:
for x, y being set st [x,y] in dom CC holds
CC . x,y = H3(x,y)
from BINOP_1:sch 6(A10);
defpred S2[ Element of F1(), set ] means ex f being Element of F2() st
( $2 = [[$1,$1],f] & P1[$1,$1,f] & ( for b being Element of F1()
for g being Element of F2() holds
( ( P1[$1,b,g] implies F3(g,f) = g ) & ( P1[b,$1,g] implies F3(f,g) = g ) ) ) );
A17:
now let a be
Element of
F1();
:: thesis: ex y being Element of M st S2[a,y]consider f being
Element of
F2()
such that A18:
(
P1[
a,
a,
f] & ( for
b being
Element of
F1()
for
g being
Element of
F2() holds
( (
P1[
a,
b,
g] implies
F3(
g,
f)
= g ) & (
P1[
b,
a,
g] implies
F3(
f,
g)
= g ) ) ) )
by A2;
[[a,a],f] in M
by A18;
then reconsider y =
[[a,a],f] as
Element of
M ;
take y =
y;
:: thesis: S2[a,y]thus
S2[
a,
y]
by A18;
:: thesis: verum end;
consider I being Function of F1(),M such that
A19:
for o being Element of F1() holds S2[o,I . o]
from FUNCT_2:sch 3(A17);
set C = CatStr(# F1(),M,DM,CM,CC,I #);
CatStr(# F1(),M,DM,CM,CC,I #) is Category-like
proof
hereby :: according to CAT_1:def 8 :: thesis: ( ( for b1, b2 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b1 or ( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b2,b1) = the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b1 & the Target of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b2,b1) = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b2 ) ) ) & ( for b1, b2, b3 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b3 = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b2 or not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b1 or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b3,(the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b2,b1) = the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b3,b2),b1 ) ) & ( for b1 being Element of the carrier of CatStr(# F1(),M,DM,CM,CC,I #) holds
( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b1 & the Target of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b1 & ( for b2 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = b1 or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1),b2 = b2 ) ) & ( for b2 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = b1 or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b2,(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b2 ) ) ) ) )
let f,
g be
Morphism of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #);
:: thesis: ( [g,f] in dom the Comp of CatStr(# F1(),M,DM,CM,CC,I #) iff the Source of CatStr(# F1(),M,DM,CM,CC,I #) . g = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . f )
( (
[g,f] in dom CC implies (
g in M &
f in M &
g `11 = f `12 &
g in M &
f in M ) ) & (
g in M &
f in M &
g `11 = f `12 &
g in M &
f in M implies
[g,f] in dom CC ) &
DM . g = g `11 &
CM . f = f `12 )
by A8, A9, A15;
hence
(
[g,f] in dom the
Comp of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #) iff the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g = the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f )
;
:: thesis: verum
end;
hereby :: thesis: ( ( for b1, b2, b3 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b3 = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b2 or not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b1 or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b3,(the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b2,b1) = the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b3,b2),b1 ) ) & ( for b1 being Element of the carrier of CatStr(# F1(),M,DM,CM,CC,I #) holds
( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b1 & the Target of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b1 & ( for b2 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = b1 or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1),b2 = b2 ) ) & ( for b2 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = b1 or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b2,(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b2 ) ) ) ) )
let f,
g be
Morphism of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #);
:: thesis: ( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . g = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . f implies ( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) = the Source of CatStr(# F1(),M,DM,CM,CC,I #) . f & the Target of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . g ) )A20:
( the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f = f `11 & the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g = g `11 & the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f = f `12 & the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g = g `12 )
by A8, A9;
assume
the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g = the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f
;
:: thesis: ( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) = the Source of CatStr(# F1(),M,DM,CM,CC,I #) . f & the Target of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . g )then
[g,f] in dom CC
by A15, A20;
then
(
CC . g,
f = [[(f `11 ),(g `12 )],F3((g `2 ),(f `2 ))] &
CC . g,
f in rng CC &
rng CC c= M )
by A16, FUNCT_1:def 5;
then
(
(CC . [g,f]) `11 = f `11 &
(CC . [g,f]) `12 = g `12 &
CC . [g,f] in M )
by MCART_1:89;
hence
( the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) = the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f & the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) = the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g )
by A8, A9, A20;
:: thesis: verum
end;
hereby :: thesis: for b1 being Element of the carrier of CatStr(# F1(),M,DM,CM,CC,I #) holds
( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b1 & the Target of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b1 & ( for b2 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = b1 or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1),b2 = b2 ) ) & ( for b2 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b2 = b1 or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b2,(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b1) = b2 ) ) )
let f,
g,
h be
Morphism of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #);
:: thesis: ( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . h = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . g & the Source of CatStr(# F1(),M,DM,CM,CC,I #) . g = the Target of CatStr(# F1(),M,DM,CM,CC,I #) . f implies the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . h,(the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) = the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . h,g),f )A21:
( the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f = f `11 & the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g = g `11 & the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. h = h `11 & the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. h = h `12 & the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f = f `12 & the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g = g `12 )
by A8, A9;
assume A22:
( the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. h = the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g & the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. g = the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f )
;
:: thesis: the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . h,(the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) = the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . h,g),fthen A23:
(
[g,f] in dom CC &
[h,g] in dom CC )
by A15, A21;
then
(
CC . [g,f] in rng CC &
CC . [h,g] in rng CC &
rng CC c= M )
by FUNCT_1:def 5;
then reconsider gf =
CC . g,
f,
hg =
CC . h,
g as
Element of
M ;
A24:
(
gf = [[(f `11 ),(g `12 )],F3((g `2 ),(f `2 ))] &
hg = [[(g `11 ),(h `12 )],F3((h `2 ),(g `2 ))] )
by A16, A23;
A25:
(
DM . gf = gf `11 &
DM . hg = hg `11 &
CM . gf = gf `12 &
CM . hg = hg `12 )
by A8, A9;
then A26:
(
DM . gf = f `11 &
DM . hg = g `11 &
CM . gf = g `12 &
CM . hg = h `12 )
by A24, MCART_1:89;
then A27:
(
[h,gf] in dom CC &
[hg,f] in dom CC )
by A15, A21, A22, A25;
reconsider f' =
f,
g' =
g,
h' =
h as
Element of
M ;
A28:
(
P1[
f' `11 ,
f' `12 ,
f' `2 ] &
P1[
g' `11 ,
g' `12 ,
g' `2 ] &
P1[
h' `11 ,
h' `12 ,
h' `2 ] )
by A6;
thus the
Comp of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. h,
(the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . g,f) =
[[(f `11 ),(h `12 )],F3((h `2 ),(gf `2 ))]
by A16, A25, A26, A27
.=
[[(f `11 ),(h `12 )],F3((h' `2 ),F3((g' `2 ),(f' `2 )))]
by A24, MCART_1:7
.=
[[(f `11 ),(h `12 )],F3(F3((h' `2 ),(g' `2 )),(f' `2 ))]
by A3, A21, A22, A28
.=
[[(f `11 ),(h `12 )],F3((hg `2 ),(f `2 ))]
by A24, MCART_1:7
.=
the
Comp of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. (the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . h,g),
f
by A16, A25, A26, A27
;
:: thesis: verum
end;
let b be
Object of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #);
:: thesis: ( the Source of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = b & the Target of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = b & ( for b1 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b1 = b or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b),b1 = b1 ) ) & ( for b1 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b1 = b or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b1,(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = b1 ) ) )
consider f being
Element of
F2()
such that A29:
(
I . b = [[b,b],f] &
P1[
b,
b,
f] & ( for
c being
Element of
F1()
for
g being
Element of
F2() holds
( (
P1[
b,
c,
g] implies
F3(
g,
f)
= g ) & (
P1[
c,
b,
g] implies
F3(
f,
g)
= g ) ) ) )
by A19;
reconsider b' =
b as
Element of
F1() ;
reconsider Ib =
I . b' as
Element of
M ;
thus the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) =
(I . b) `11
by A8
.=
b
by A29, MCART_1:89
;
:: thesis: ( the Target of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = b & ( for b1 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b1 = b or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b),b1 = b1 ) ) & ( for b1 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b1 = b or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b1,(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = b1 ) ) )
thus the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) =
(I . b) `12
by A9
.=
b
by A29, MCART_1:89
;
:: thesis: ( ( for b1 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Target of CatStr(# F1(),M,DM,CM,CC,I #) . b1 = b or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b),b1 = b1 ) ) & ( for b1 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b1 = b or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b1,(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = b1 ) ) )
hereby :: thesis: for b1 being Element of the carrier' of CatStr(# F1(),M,DM,CM,CC,I #) holds
( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . b1 = b or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . b1,(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = b1 )
let f' be
Morphism of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #);
:: thesis: ( the Target of CatStr(# F1(),M,DM,CM,CC,I #) . f' = b implies the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b),f' = f' )reconsider g =
f' as
Element of
M ;
assume
the
Target of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f' = b
;
:: thesis: the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b),f' = f'then A30:
(
g `12 = b &
Ib `11 = b )
by A9, A29, MCART_1:89;
then
(
P1[
g `11 ,
b,
g `2 ] &
[Ib,g] in dom CC &
Ib `12 = b &
Ib `2 = f )
by A6, A15, A29, MCART_1:7, MCART_1:89;
then
(
F3(
f,
(g `2 ))
= g `2 &
CC . Ib,
g = [[(g `11 ),b],F3(f,(g `2 ))] )
by A16, A29;
hence
the
Comp of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. (the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b),
f' = f'
by A6, A30;
:: thesis: verum
end;
let f' be
Morphism of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #);
:: thesis: ( not the Source of CatStr(# F1(),M,DM,CM,CC,I #) . f' = b or the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . f',(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = f' )
reconsider g =
f' as
Element of
M ;
assume
the
Source of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f' = b
;
:: thesis: the Comp of CatStr(# F1(),M,DM,CM,CC,I #) . f',(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = f'
then A31:
(
g `11 = b &
Ib `12 = b )
by A8, A29, MCART_1:89;
then
(
P1[
b,
g `12 ,
g `2 ] &
[g,Ib] in dom CC &
Ib `11 = b &
Ib `2 = f )
by A6, A15, A29, MCART_1:7, MCART_1:89;
then
(
F3(
(g `2 ),
f)
= g `2 &
CC . g,
Ib = [[b,(g `12 )],F3((g `2 ),f)] )
by A16, A29;
hence
the
Comp of
CatStr(#
F1(),
M,
DM,
CM,
CC,
I #)
. f',
(the Id of CatStr(# F1(),M,DM,CM,CC,I #) . b) = f'
by A6, A31;
:: thesis: verum
end;
then reconsider C = CatStr(# F1(),M,DM,CM,CC,I #) as strict Category ;
C is with_triple-like_morphisms
proof
let f be
Morphism of
C;
:: according to CAT_5:def 1 :: thesis: ex x being set st f = [[(dom f),(cod f)],x]
f in M
;
then consider a,
b being
Element of
F1(),
g being
Element of
F2()
such that A32:
(
f = [[a,b],g] &
P1[
a,
b,
g] )
;
take
g
;
:: thesis: f = [[(dom f),(cod f)],g]
A33:
dom f =
f `11
by A8
.=
a
by A32, MCART_1:89
;
cod f =
f `12
by A9
.=
b
by A32, MCART_1:89
;
hence
f = [[(dom f),(cod f)],g]
by A32, A33;
:: thesis: verum
end;
then reconsider C = C as strict with_triple-like_morphisms Category ;
take
C
; :: thesis: ( the carrier of C = F1() & ( for a, b being Element of F1()
for f being Element of F2() st P1[a,b,f] holds
[[a,b],f] is Morphism of C ) & ( for m being Morphism of C ex a, b being Element of F1() ex f being Element of F2() st
( m = [[a,b],f] & P1[a,b,f] ) ) & ( for m1, m2 being Morphism of C
for a1, a2, a3 being Element of F1()
for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)] ) )
thus
the carrier of C = F1()
; :: thesis: ( ( for a, b being Element of F1()
for f being Element of F2() st P1[a,b,f] holds
[[a,b],f] is Morphism of C ) & ( for m being Morphism of C ex a, b being Element of F1() ex f being Element of F2() st
( m = [[a,b],f] & P1[a,b,f] ) ) & ( for m1, m2 being Morphism of C
for a1, a2, a3 being Element of F1()
for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)] ) )
hereby :: thesis: ( ( for m being Morphism of C ex a, b being Element of F1() ex f being Element of F2() st
( m = [[a,b],f] & P1[a,b,f] ) ) & ( for m1, m2 being Morphism of C
for a1, a2, a3 being Element of F1()
for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)] ) )
let a,
b be
Element of
F1();
:: thesis: for f being Element of F2() st P1[a,b,f] holds
[[a,b],f] is Morphism of Clet f be
Element of
F2();
:: thesis: ( P1[a,b,f] implies [[a,b],f] is Morphism of C )assume
P1[
a,
b,
f]
;
:: thesis: [[a,b],f] is Morphism of Cthen
[[a,b],f] in M
;
hence
[[a,b],f] is
Morphism of
C
;
:: thesis: verum
end;
hereby :: thesis: for m1, m2 being Morphism of C
for a1, a2, a3 being Element of F1()
for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)]
let m be
Morphism of
C;
:: thesis: ex a, b being Element of F1() ex f being Element of F2() st
( m = [[a,b],f] & P1[a,b,f] )
m in M
;
hence
ex
a,
b being
Element of
F1() ex
f being
Element of
F2() st
(
m = [[a,b],f] &
P1[
a,
b,
f] )
;
:: thesis: verum
end;
let m1, m2 be Morphism of C; :: thesis: for a1, a2, a3 being Element of F1()
for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)]
let a1, a2, a3 be Element of F1(); :: thesis: for f1, f2 being Element of F2() st m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] holds
m2 * m1 = [[a1,a3],F3(f2,f1)]
let f1, f2 be Element of F2(); :: thesis: ( m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] implies m2 * m1 = [[a1,a3],F3(f2,f1)] )
assume A34:
( m1 = [[a1,a2],f1] & m2 = [[a2,a3],f2] )
; :: thesis: m2 * m1 = [[a1,a3],F3(f2,f1)]
then A35:
( m1 `11 = a1 & m1 `12 = a2 & m2 `11 = a2 & m2 `12 = a3 )
by MCART_1:89;
then A36:
[m2,m1] in dom CC
by A15;
hence m2 * m1 =
CC . m2,m1
by CAT_1:def 4
.=
[[a1,a3],F3((m2 `2 ),(m1 `2 ))]
by A16, A35, A36
.=
[[a1,a3],F3(f2,(m1 `2 ))]
by A34, MCART_1:7
.=
[[a1,a3],F3(f2,f1)]
by A34, MCART_1:7
;
:: thesis: verum