:: ALTCAT_1 semantic presentation
begin
theorem Th1: :: ALTCAT_1:1
for A being set holds id A in Funcs (A,A)
proof
let A be set ; ::_thesis: id A in Funcs (A,A)
( dom (id A) = A & rng (id A) = A ) ;
hence id A in Funcs (A,A) by FUNCT_2:def_2; ::_thesis: verum
end;
theorem Th2: :: ALTCAT_1:2
Funcs ({},{}) = {(id {})}
proof
hereby :: according to TARSKI:def_3,XBOOLE_0:def_10 ::_thesis: {(id {})} c= Funcs ({},{})
let f be set ; ::_thesis: ( f in Funcs ({},{}) implies f in {(id {})} )
assume f in Funcs ({},{}) ; ::_thesis: f in {(id {})}
then reconsider f9 = f as Function of {},{} by FUNCT_2:66;
f9 = id {} ;
hence f in {(id {})} by TARSKI:def_1; ::_thesis: verum
end;
id {} in Funcs ({},{}) by Th1;
hence {(id {})} c= Funcs ({},{}) by ZFMISC_1:31; ::_thesis: verum
end;
theorem Th3: :: ALTCAT_1:3
for A, B, C being set
for f, g being Function st f in Funcs (A,B) & g in Funcs (B,C) holds
g * f in Funcs (A,C)
proof
let A, B, C be set ; ::_thesis: for f, g being Function st f in Funcs (A,B) & g in Funcs (B,C) holds
g * f in Funcs (A,C)
let f, g be Function; ::_thesis: ( f in Funcs (A,B) & g in Funcs (B,C) implies g * f in Funcs (A,C) )
assume that
A1: f in Funcs (A,B) and
A2: g in Funcs (B,C) ; ::_thesis: g * f in Funcs (A,C)
A3: ex g9 being Function st
( g9 = g & dom g9 = B & rng g9 c= C ) by A2, FUNCT_2:def_2;
rng (g * f) c= rng g by RELAT_1:26;
then A4: rng (g * f) c= C by A3, XBOOLE_1:1;
ex f9 being Function st
( f9 = f & dom f9 = A & rng f9 c= B ) by A1, FUNCT_2:def_2;
then dom (g * f) = A by A3, RELAT_1:27;
hence g * f in Funcs (A,C) by A4, FUNCT_2:def_2; ::_thesis: verum
end;
theorem Th4: :: ALTCAT_1:4
for A, B, C being set st Funcs (A,B) <> {} & Funcs (B,C) <> {} holds
Funcs (A,C) <> {}
proof
let A, B, C be set ; ::_thesis: ( Funcs (A,B) <> {} & Funcs (B,C) <> {} implies Funcs (A,C) <> {} )
assume that
A1: Funcs (A,B) <> {} and
A2: Funcs (B,C) <> {} ; ::_thesis: Funcs (A,C) <> {}
consider g being set such that
A3: g in Funcs (B,C) by A2, XBOOLE_0:def_1;
ex f being set st f in Funcs (A,B) by A1, XBOOLE_0:def_1;
hence Funcs (A,C) <> {} by A3, Th3; ::_thesis: verum
end;
theorem :: ALTCAT_1:5
for A, B being set
for F being ManySortedSet of [:B,A:]
for C being Subset of A
for D being Subset of B
for x, y being set st x in C & y in D holds
F . (y,x) = (F | [:D,C:]) . (y,x)
proof
let A, B be set ; ::_thesis: for F being ManySortedSet of [:B,A:]
for C being Subset of A
for D being Subset of B
for x, y being set st x in C & y in D holds
F . (y,x) = (F | [:D,C:]) . (y,x)
let F be ManySortedSet of [:B,A:]; ::_thesis: for C being Subset of A
for D being Subset of B
for x, y being set st x in C & y in D holds
F . (y,x) = (F | [:D,C:]) . (y,x)
let C be Subset of A; ::_thesis: for D being Subset of B
for x, y being set st x in C & y in D holds
F . (y,x) = (F | [:D,C:]) . (y,x)
let D be Subset of B; ::_thesis: for x, y being set st x in C & y in D holds
F . (y,x) = (F | [:D,C:]) . (y,x)
let x, y be set ; ::_thesis: ( x in C & y in D implies F . (y,x) = (F | [:D,C:]) . (y,x) )
assume ( x in C & y in D ) ; ::_thesis: F . (y,x) = (F | [:D,C:]) . (y,x)
then [y,x] in [:D,C:] by ZFMISC_1:87;
hence F . (y,x) = (F | [:D,C:]) . (y,x) by FUNCT_1:49; ::_thesis: verum
end;
scheme :: ALTCAT_1:sch 1
MSSLambda2{ F1() -> set , F2() -> set , F3( set , set ) -> set } :
ex M being ManySortedSet of [:F1(),F2():] st
for i, j being set st i in F1() & j in F2() holds
M . (i,j) = F3(i,j)
proof
deffunc H1( set ) -> set = F3(($1 `1),($1 `2));
consider f being Function such that
A1: dom f = [:F1(),F2():] and
A2: for x being set st x in [:F1(),F2():] holds
f . x = H1(x) from FUNCT_1:sch_3();
reconsider f = f as ManySortedSet of [:F1(),F2():] by A1, PARTFUN1:def_2, RELAT_1:def_18;
take f ; ::_thesis: for i, j being set st i in F1() & j in F2() holds
f . (i,j) = F3(i,j)
let i, j be set ; ::_thesis: ( i in F1() & j in F2() implies f . (i,j) = F3(i,j) )
assume ( i in F1() & j in F2() ) ; ::_thesis: f . (i,j) = F3(i,j)
then A3: [i,j] in [:F1(),F2():] by ZFMISC_1:87;
( [i,j] `1 = i & [i,j] `2 = j ) ;
hence f . (i,j) = F3(i,j) by A2, A3; ::_thesis: verum
end;
scheme :: ALTCAT_1:sch 2
MSSLambda2D{ F1() -> non empty set , F2() -> non empty set , F3( set , set ) -> set } :
ex M being ManySortedSet of [:F1(),F2():] st
for i being Element of F1()
for j being Element of F2() holds M . (i,j) = F3(i,j)
proof
consider M being ManySortedSet of [:F1(),F2():] such that
A1: for i, j being set st i in F1() & j in F2() holds
M . (i,j) = F3(i,j) from ALTCAT_1:sch_1();
take M ; ::_thesis: for i being Element of F1()
for j being Element of F2() holds M . (i,j) = F3(i,j)
thus for i being Element of F1()
for j being Element of F2() holds M . (i,j) = F3(i,j) by A1; ::_thesis: verum
end;
scheme :: ALTCAT_1:sch 3
MSSLambda3{ F1() -> set , F2() -> set , F3() -> set , F4( set , set , set ) -> set } :
ex M being ManySortedSet of [:F1(),F2(),F3():] st
for i, j, k being set st i in F1() & j in F2() & k in F3() holds
M . (i,j,k) = F4(i,j,k)
proof
deffunc H1( set ) -> set = F4((($1 `1) `1),(($1 `1) `2),($1 `2));
consider f being Function such that
A1: dom f = [:F1(),F2(),F3():] and
A2: for x being set st x in [:F1(),F2(),F3():] holds
f . x = H1(x) from FUNCT_1:sch_3();
reconsider f = f as ManySortedSet of [:F1(),F2(),F3():] by A1, PARTFUN1:def_2, RELAT_1:def_18;
take f ; ::_thesis: for i, j, k being set st i in F1() & j in F2() & k in F3() holds
f . (i,j,k) = F4(i,j,k)
let i, j, k be set ; ::_thesis: ( i in F1() & j in F2() & k in F3() implies f . (i,j,k) = F4(i,j,k) )
A3: ( [[i,j],k] `2 = k & [i,j,k] = [[i,j],k] ) ;
A4: ([[i,j],k] `1) `2 = j ;
A5: ([[i,j],k] `1) `1 = i ;
assume ( i in F1() & j in F2() & k in F3() ) ; ::_thesis: f . (i,j,k) = F4(i,j,k)
then A6: [i,j,k] in [:F1(),F2(),F3():] by MCART_1:69;
thus f . (i,j,k) = f . [i,j,k] by MULTOP_1:def_1
.= F4(i,j,k) by A2, A6, A5, A4, A3 ; ::_thesis: verum
end;
scheme :: ALTCAT_1:sch 4
MSSLambda3D{ F1() -> non empty set , F2() -> non empty set , F3() -> non empty set , F4( set , set , set ) -> set } :
ex M being ManySortedSet of [:F1(),F2(),F3():] st
for i being Element of F1()
for j being Element of F2()
for k being Element of F3() holds M . (i,j,k) = F4(i,j,k)
proof
consider M being ManySortedSet of [:F1(),F2(),F3():] such that
A1: for i, j, k being set st i in F1() & j in F2() & k in F3() holds
M . (i,j,k) = F4(i,j,k) from ALTCAT_1:sch_3();
take M ; ::_thesis: for i being Element of F1()
for j being Element of F2()
for k being Element of F3() holds M . (i,j,k) = F4(i,j,k)
thus for i being Element of F1()
for j being Element of F2()
for k being Element of F3() holds M . (i,j,k) = F4(i,j,k) by A1; ::_thesis: verum
end;
theorem Th6: :: ALTCAT_1:6
for A, B being set
for N, M being ManySortedSet of [:A,B:] st ( for i, j being set st i in A & j in B holds
N . (i,j) = M . (i,j) ) holds
M = N
proof
let A, B be set ; ::_thesis: for N, M being ManySortedSet of [:A,B:] st ( for i, j being set st i in A & j in B holds
N . (i,j) = M . (i,j) ) holds
M = N
let N, M be ManySortedSet of [:A,B:]; ::_thesis: ( ( for i, j being set st i in A & j in B holds
N . (i,j) = M . (i,j) ) implies M = N )
assume A1: for i, j being set st i in A & j in B holds
N . (i,j) = M . (i,j) ; ::_thesis: M = N
A2: now__::_thesis:_for_x_being_set_st_x_in_[:A,B:]_holds_
N_._x_=_M_._x
let x be set ; ::_thesis: ( x in [:A,B:] implies N . x = M . x )
assume A3: x in [:A,B:] ; ::_thesis: N . x = M . x
then reconsider A1 = A, B1 = B as non empty set ;
consider i being Element of A1, j being Element of B1 such that
A4: x = [i,j] by A3, DOMAIN_1:1;
thus N . x = N . (i,j) by A4
.= M . (i,j) by A1
.= M . x by A4 ; ::_thesis: verum
end;
( dom M = [:A,B:] & dom N = [:A,B:] ) by PARTFUN1:def_2;
hence M = N by A2, FUNCT_1:2; ::_thesis: verum
end;
theorem Th7: :: ALTCAT_1:7
for A, B being non empty set
for N, M being ManySortedSet of [:A,B:] st ( for i being Element of A
for j being Element of B holds N . (i,j) = M . (i,j) ) holds
M = N
proof
let A, B be non empty set ; ::_thesis: for N, M being ManySortedSet of [:A,B:] st ( for i being Element of A
for j being Element of B holds N . (i,j) = M . (i,j) ) holds
M = N
let N, M be ManySortedSet of [:A,B:]; ::_thesis: ( ( for i being Element of A
for j being Element of B holds N . (i,j) = M . (i,j) ) implies M = N )
assume for i being Element of A
for j being Element of B holds N . (i,j) = M . (i,j) ; ::_thesis: M = N
then for i, j being set st i in A & j in B holds
N . (i,j) = M . (i,j) ;
hence M = N by Th6; ::_thesis: verum
end;
theorem Th8: :: ALTCAT_1:8
for A being set
for N, M being ManySortedSet of [:A,A,A:] st ( for i, j, k being set st i in A & j in A & k in A holds
N . (i,j,k) = M . (i,j,k) ) holds
M = N
proof
let A be set ; ::_thesis: for N, M being ManySortedSet of [:A,A,A:] st ( for i, j, k being set st i in A & j in A & k in A holds
N . (i,j,k) = M . (i,j,k) ) holds
M = N
let N, M be ManySortedSet of [:A,A,A:]; ::_thesis: ( ( for i, j, k being set st i in A & j in A & k in A holds
N . (i,j,k) = M . (i,j,k) ) implies M = N )
assume A1: for i, j, k being set st i in A & j in A & k in A holds
N . (i,j,k) = M . (i,j,k) ; ::_thesis: M = N
A2: now__::_thesis:_for_x_being_set_st_x_in_[:A,A,A:]_holds_
M_._x_=_N_._x
let x be set ; ::_thesis: ( x in [:A,A,A:] implies M . x = N . x )
assume A3: x in [:A,A,A:] ; ::_thesis: M . x = N . x
then reconsider A = A as non empty set by MCART_1:31;
consider i, j, k being Element of A such that
A4: x = [i,j,k] by A3, DOMAIN_1:3;
thus M . x = M . (i,j,k) by A4, MULTOP_1:def_1
.= N . (i,j,k) by A1
.= N . x by A4, MULTOP_1:def_1 ; ::_thesis: verum
end;
( dom M = [:A,A,A:] & dom N = [:A,A,A:] ) by PARTFUN1:def_2;
hence M = N by A2, FUNCT_1:2; ::_thesis: verum
end;
theorem :: ALTCAT_1:9
for i, j, k being set holds (i,j) :-> k = [i,j] .--> k ;
theorem Th10: :: ALTCAT_1:10
for i, j, k being set holds ((i,j) :-> k) . (i,j) = k
proof
let i, j, k be set ; ::_thesis: ((i,j) :-> k) . (i,j) = k
thus ((i,j) :-> k) . (i,j) = ([i,j] .--> k) . [i,j]
.= k by FUNCOP_1:72 ; ::_thesis: verum
end;
begin
definition
attrc1 is strict ;
struct AltGraph -> 1-sorted ;
aggrAltGraph(# carrier, Arrows #) -> AltGraph ;
sel Arrows c1 -> ManySortedSet of [: the carrier of c1, the carrier of c1:];
end;
definition
let G be AltGraph ;
mode object of G is Element of G;
end;
definition
let G be AltGraph ;
let o1, o2 be object of G;
func<^o1,o2^> -> set equals :: ALTCAT_1:def 1
the Arrows of G . (o1,o2);
correctness
coherence
the Arrows of G . (o1,o2) is set ;
;
end;
:: deftheorem defines <^ ALTCAT_1:def_1_:_
for G being AltGraph
for o1, o2 being object of G holds <^o1,o2^> = the Arrows of G . (o1,o2);
definition
let G be AltGraph ;
let o1, o2 be object of G;
mode Morphism of o1,o2 is Element of <^o1,o2^>;
end;
definition
let G be AltGraph ;
attrG is transitive means :Def2: :: ALTCAT_1:def 2
for o1, o2, o3 being object of G st <^o1,o2^> <> {} & <^o2,o3^> <> {} holds
<^o1,o3^> <> {} ;
end;
:: deftheorem Def2 defines transitive ALTCAT_1:def_2_:_
for G being AltGraph holds
( G is transitive iff for o1, o2, o3 being object of G st <^o1,o2^> <> {} & <^o2,o3^> <> {} holds
<^o1,o3^> <> {} );
begin
definition
let I be set ;
let G be ManySortedSet of [:I,I:];
func{|G|} -> ManySortedSet of [:I,I,I:] means :Def3: :: ALTCAT_1:def 3
for i, j, k being set st i in I & j in I & k in I holds
it . (i,j,k) = G . (i,k);
existence
ex b1 being ManySortedSet of [:I,I,I:] st
for i, j, k being set st i in I & j in I & k in I holds
b1 . (i,j,k) = G . (i,k)
proof
deffunc H1( set , set , set ) -> set = G . ($1,$3);
ex M being ManySortedSet of [:I,I,I:] st
for i, j, k being set st i in I & j in I & k in I holds
M . (i,j,k) = H1(i,j,k) from ALTCAT_1:sch_3();
hence ex b1 being ManySortedSet of [:I,I,I:] st
for i, j, k being set st i in I & j in I & k in I holds
b1 . (i,j,k) = G . (i,k) ; ::_thesis: verum
end;
uniqueness
for b1, b2 being ManySortedSet of [:I,I,I:] st ( for i, j, k being set st i in I & j in I & k in I holds
b1 . (i,j,k) = G . (i,k) ) & ( for i, j, k being set st i in I & j in I & k in I holds
b2 . (i,j,k) = G . (i,k) ) holds
b1 = b2
proof
let M1, M2 be ManySortedSet of [:I,I,I:]; ::_thesis: ( ( for i, j, k being set st i in I & j in I & k in I holds
M1 . (i,j,k) = G . (i,k) ) & ( for i, j, k being set st i in I & j in I & k in I holds
M2 . (i,j,k) = G . (i,k) ) implies M1 = M2 )
assume that
A1: for i, j, k being set st i in I & j in I & k in I holds
M1 . (i,j,k) = G . (i,k) and
A2: for i, j, k being set st i in I & j in I & k in I holds
M2 . (i,j,k) = G . (i,k) ; ::_thesis: M1 = M2
now__::_thesis:_for_i,_j,_k_being_set_st_i_in_I_&_j_in_I_&_k_in_I_holds_
M1_._(i,j,k)_=_M2_._(i,j,k)
let i, j, k be set ; ::_thesis: ( i in I & j in I & k in I implies M1 . (i,j,k) = M2 . (i,j,k) )
assume A3: ( i in I & j in I & k in I ) ; ::_thesis: M1 . (i,j,k) = M2 . (i,j,k)
hence M1 . (i,j,k) = G . (i,k) by A1
.= M2 . (i,j,k) by A2, A3 ;
::_thesis: verum
end;
hence M1 = M2 by Th8; ::_thesis: verum
end;
let H be ManySortedSet of [:I,I:];
func{|G,H|} -> ManySortedSet of [:I,I,I:] means :Def4: :: ALTCAT_1:def 4
for i, j, k being set st i in I & j in I & k in I holds
it . (i,j,k) = [:(H . (j,k)),(G . (i,j)):];
existence
ex b1 being ManySortedSet of [:I,I,I:] st
for i, j, k being set st i in I & j in I & k in I holds
b1 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):]
proof
deffunc H1( set , set , set ) -> set = [:(H . ($2,$3)),(G . ($1,$2)):];
ex M being ManySortedSet of [:I,I,I:] st
for i, j, k being set st i in I & j in I & k in I holds
M . (i,j,k) = H1(i,j,k) from ALTCAT_1:sch_3();
hence ex b1 being ManySortedSet of [:I,I,I:] st
for i, j, k being set st i in I & j in I & k in I holds
b1 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] ; ::_thesis: verum
end;
uniqueness
for b1, b2 being ManySortedSet of [:I,I,I:] st ( for i, j, k being set st i in I & j in I & k in I holds
b1 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] ) & ( for i, j, k being set st i in I & j in I & k in I holds
b2 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] ) holds
b1 = b2
proof
let M1, M2 be ManySortedSet of [:I,I,I:]; ::_thesis: ( ( for i, j, k being set st i in I & j in I & k in I holds
M1 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] ) & ( for i, j, k being set st i in I & j in I & k in I holds
M2 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] ) implies M1 = M2 )
assume that
A4: for i, j, k being set st i in I & j in I & k in I holds
M1 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] and
A5: for i, j, k being set st i in I & j in I & k in I holds
M2 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] ; ::_thesis: M1 = M2
now__::_thesis:_for_i,_j,_k_being_set_st_i_in_I_&_j_in_I_&_k_in_I_holds_
M1_._(i,j,k)_=_M2_._(i,j,k)
let i, j, k be set ; ::_thesis: ( i in I & j in I & k in I implies M1 . (i,j,k) = M2 . (i,j,k) )
assume A6: ( i in I & j in I & k in I ) ; ::_thesis: M1 . (i,j,k) = M2 . (i,j,k)
hence M1 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] by A4
.= M2 . (i,j,k) by A5, A6 ;
::_thesis: verum
end;
hence M1 = M2 by Th8; ::_thesis: verum
end;
end;
:: deftheorem Def3 defines {| ALTCAT_1:def_3_:_
for I being set
for G being ManySortedSet of [:I,I:]
for b3 being ManySortedSet of [:I,I,I:] holds
( b3 = {|G|} iff for i, j, k being set st i in I & j in I & k in I holds
b3 . (i,j,k) = G . (i,k) );
:: deftheorem Def4 defines {| ALTCAT_1:def_4_:_
for I being set
for G, H being ManySortedSet of [:I,I:]
for b4 being ManySortedSet of [:I,I,I:] holds
( b4 = {|G,H|} iff for i, j, k being set st i in I & j in I & k in I holds
b4 . (i,j,k) = [:(H . (j,k)),(G . (i,j)):] );
definition
let I be set ;
let G be ManySortedSet of [:I,I:];
mode BinComp of G is ManySortedFunction of {|G,G|},{|G|};
end;
definition
let I be non empty set ;
let G be ManySortedSet of [:I,I:];
let o be BinComp of G;
let i, j, k be Element of I;
:: original: .
redefine funco . (i,j,k) -> Function of [:(G . (j,k)),(G . (i,j)):],(G . (i,k));
coherence
o . (i,j,k) is Function of [:(G . (j,k)),(G . (i,j)):],(G . (i,k))
proof
A1: {|G|} . [i,j,k] = {|G|} . (i,j,k) by MULTOP_1:def_1
.= G . (i,k) by Def3 ;
A2: o . [i,j,k] = o . (i,j,k) by MULTOP_1:def_1;
{|G,G|} . [i,j,k] = {|G,G|} . (i,j,k) by MULTOP_1:def_1
.= [:(G . (j,k)),(G . (i,j)):] by Def4 ;
hence o . (i,j,k) is Function of [:(G . (j,k)),(G . (i,j)):],(G . (i,k)) by A2, A1, PBOOLE:def_15; ::_thesis: verum
end;
end;
definition
let I be non empty set ;
let G be ManySortedSet of [:I,I:];
let IT be BinComp of G;
attrIT is associative means :Def5: :: ALTCAT_1:def 5
for i, j, k, l being Element of I
for f, g, h being set st f in G . (i,j) & g in G . (j,k) & h in G . (k,l) holds
(IT . (i,k,l)) . (h,((IT . (i,j,k)) . (g,f))) = (IT . (i,j,l)) . (((IT . (j,k,l)) . (h,g)),f);
attrIT is with_right_units means :Def6: :: ALTCAT_1:def 6
for i being Element of I ex e being set st
( e in G . (i,i) & ( for j being Element of I
for f being set st f in G . (i,j) holds
(IT . (i,i,j)) . (f,e) = f ) );
attrIT is with_left_units means :Def7: :: ALTCAT_1:def 7
for j being Element of I ex e being set st
( e in G . (j,j) & ( for i being Element of I
for f being set st f in G . (i,j) holds
(IT . (i,j,j)) . (e,f) = f ) );
end;
:: deftheorem Def5 defines associative ALTCAT_1:def_5_:_
for I being non empty set
for G being ManySortedSet of [:I,I:]
for IT being BinComp of G holds
( IT is associative iff for i, j, k, l being Element of I
for f, g, h being set st f in G . (i,j) & g in G . (j,k) & h in G . (k,l) holds
(IT . (i,k,l)) . (h,((IT . (i,j,k)) . (g,f))) = (IT . (i,j,l)) . (((IT . (j,k,l)) . (h,g)),f) );
:: deftheorem Def6 defines with_right_units ALTCAT_1:def_6_:_
for I being non empty set
for G being ManySortedSet of [:I,I:]
for IT being BinComp of G holds
( IT is with_right_units iff for i being Element of I ex e being set st
( e in G . (i,i) & ( for j being Element of I
for f being set st f in G . (i,j) holds
(IT . (i,i,j)) . (f,e) = f ) ) );
:: deftheorem Def7 defines with_left_units ALTCAT_1:def_7_:_
for I being non empty set
for G being ManySortedSet of [:I,I:]
for IT being BinComp of G holds
( IT is with_left_units iff for j being Element of I ex e being set st
( e in G . (j,j) & ( for i being Element of I
for f being set st f in G . (i,j) holds
(IT . (i,j,j)) . (e,f) = f ) ) );
begin
definition
attrc1 is strict ;
struct AltCatStr -> AltGraph ;
aggrAltCatStr(# carrier, Arrows, Comp #) -> AltCatStr ;
sel Comp c1 -> BinComp of the Arrows of c1;
end;
registration
cluster non empty strict for AltCatStr ;
existence
ex b1 being AltCatStr st
( b1 is strict & not b1 is empty )
proof
set X = the non empty set ;
set A = the ManySortedSet of [: the non empty set , the non empty set :];
set C = the BinComp of the ManySortedSet of [: the non empty set , the non empty set :];
take AltCatStr(# the non empty set , the ManySortedSet of [: the non empty set , the non empty set :], the BinComp of the ManySortedSet of [: the non empty set , the non empty set :] #) ; ::_thesis: ( AltCatStr(# the non empty set , the ManySortedSet of [: the non empty set , the non empty set :], the BinComp of the ManySortedSet of [: the non empty set , the non empty set :] #) is strict & not AltCatStr(# the non empty set , the ManySortedSet of [: the non empty set , the non empty set :], the BinComp of the ManySortedSet of [: the non empty set , the non empty set :] #) is empty )
thus AltCatStr(# the non empty set , the ManySortedSet of [: the non empty set , the non empty set :], the BinComp of the ManySortedSet of [: the non empty set , the non empty set :] #) is strict ; ::_thesis: not AltCatStr(# the non empty set , the ManySortedSet of [: the non empty set , the non empty set :], the BinComp of the ManySortedSet of [: the non empty set , the non empty set :] #) is empty
thus not the carrier of AltCatStr(# the non empty set , the ManySortedSet of [: the non empty set , the non empty set :], the BinComp of the ManySortedSet of [: the non empty set , the non empty set :] #) is empty ; :: according to STRUCT_0:def_1 ::_thesis: verum
end;
end;
definition
let C be non empty AltCatStr ;
let o1, o2, o3 be object of C;
assume A1: ( <^o1,o2^> <> {} & <^o2,o3^> <> {} ) ;
let f be Morphism of o1,o2;
let g be Morphism of o2,o3;
funcg * f -> Morphism of o1,o3 equals :Def8: :: ALTCAT_1:def 8
( the Comp of C . (o1,o2,o3)) . (g,f);
coherence
( the Comp of C . (o1,o2,o3)) . (g,f) is Morphism of o1,o3
proof
reconsider H1 = <^o1,o2^>, H2 = <^o2,o3^> as non empty set by A1;
reconsider F = the Comp of C . (o1,o2,o3) as Function of [:H2,H1:],<^o1,o3^> ;
reconsider y = g as Element of H2 ;
reconsider x = f as Element of H1 ;
F . (y,x) is Element of <^o1,o3^> ;
hence ( the Comp of C . (o1,o2,o3)) . (g,f) is Morphism of o1,o3 ; ::_thesis: verum
end;
correctness
;
end;
:: deftheorem Def8 defines * ALTCAT_1:def_8_:_
for C being non empty AltCatStr
for o1, o2, o3 being object of C st <^o1,o2^> <> {} & <^o2,o3^> <> {} holds
for f being Morphism of o1,o2
for g being Morphism of o2,o3 holds g * f = ( the Comp of C . (o1,o2,o3)) . (g,f);
definition
let IT be Function;
attrIT is compositional means :Def9: :: ALTCAT_1:def 9
for x being set st x in dom IT holds
ex f, g being Function st
( x = [g,f] & IT . x = g * f );
end;
:: deftheorem Def9 defines compositional ALTCAT_1:def_9_:_
for IT being Function holds
( IT is compositional iff for x being set st x in dom IT holds
ex f, g being Function st
( x = [g,f] & IT . x = g * f ) );
registration
let A, B be functional set ;
cluster Relation-like [:A,B:] -defined Function-like V14([:A,B:]) Function-yielding V25() compositional for set ;
existence
ex b1 being ManySortedFunction of [:A,B:] st b1 is compositional
proof
percases ( A = {} or B = {} or ( A <> {} & B <> {} ) ) ;
supposeA1: ( A = {} or B = {} ) ; ::_thesis: ex b1 being ManySortedFunction of [:A,B:] st b1 is compositional
set M = [[0]] [:A,B:];
[[0]] [:A,B:] is Function-yielding by A1;
then reconsider M = [[0]] [:A,B:] as ManySortedFunction of [:A,B:] ;
take M ; ::_thesis: M is compositional
let x be set ; :: according to ALTCAT_1:def_9 ::_thesis: ( x in dom M implies ex f, g being Function st
( x = [g,f] & M . x = g * f ) )
thus ( x in dom M implies ex f, g being Function st
( x = [g,f] & M . x = g * f ) ) by A1; ::_thesis: verum
end;
suppose ( A <> {} & B <> {} ) ; ::_thesis: ex b1 being ManySortedFunction of [:A,B:] st b1 is compositional
then reconsider A1 = A, B1 = B as functional non empty set ;
deffunc H1( Element of A1, Element of B1) -> set = A * B;
consider M being ManySortedSet of [:A1,B1:] such that
A2: for i being Element of A1
for j being Element of B1 holds M . (i,j) = H1(i,j) from ALTCAT_1:sch_2();
M is Function-yielding
proof
let x be set ; :: according to FUNCOP_1:def_6 ::_thesis: ( not x in proj1 M or M . x is set )
assume x in dom M ; ::_thesis: M . x is set
then A3: x in [:A1,B1:] by PARTFUN1:def_2;
then A4: ( x `1 in A1 & x `2 in B1 ) by MCART_1:10;
then reconsider f = x `1 , g = x `2 as Function ;
M . x = M . (f,g) by A3, MCART_1:22
.= f * g by A2, A4 ;
hence M . x is set ; ::_thesis: verum
end;
then reconsider M = M as ManySortedFunction of [:A,B:] ;
take M ; ::_thesis: M is compositional
let x be set ; :: according to ALTCAT_1:def_9 ::_thesis: ( x in dom M implies ex f, g being Function st
( x = [g,f] & M . x = g * f ) )
assume x in dom M ; ::_thesis: ex f, g being Function st
( x = [g,f] & M . x = g * f )
then A5: x in [:A1,B1:] by PARTFUN1:def_2;
then A6: ( x `1 in A1 & x `2 in B1 ) by MCART_1:10;
then reconsider f = x `1 , g = x `2 as Function ;
take g ; ::_thesis: ex g being Function st
( x = [g,g] & M . x = g * g )
take f ; ::_thesis: ( x = [f,g] & M . x = f * g )
thus x = [f,g] by A5, MCART_1:22; ::_thesis: M . x = f * g
thus M . x = M . (f,g) by A5, MCART_1:22
.= f * g by A2, A6 ; ::_thesis: verum
end;
end;
end;
end;
theorem Th11: :: ALTCAT_1:11
for A, B being functional set
for F being compositional ManySortedSet of [:A,B:]
for g, f being Function st g in A & f in B holds
F . (g,f) = g * f
proof
let A, B be functional set ; ::_thesis: for F being compositional ManySortedSet of [:A,B:]
for g, f being Function st g in A & f in B holds
F . (g,f) = g * f
let F be compositional ManySortedSet of [:A,B:]; ::_thesis: for g, f being Function st g in A & f in B holds
F . (g,f) = g * f
let g, f be Function; ::_thesis: ( g in A & f in B implies F . (g,f) = g * f )
assume A1: ( g in A & f in B ) ; ::_thesis: F . (g,f) = g * f
dom F = [:A,B:] by PARTFUN1:def_2;
then [g,f] in dom F by A1, ZFMISC_1:87;
then consider ff, gg being Function such that
A2: [g,f] = [gg,ff] and
A3: F . [g,f] = gg * ff by Def9;
g = gg by A2, XTUPLE_0:1;
hence F . (g,f) = g * f by A2, A3, XTUPLE_0:1; ::_thesis: verum
end;
definition
let A, B be functional set ;
func FuncComp (A,B) -> compositional ManySortedFunction of [:B,A:] means :Def10: :: ALTCAT_1:def 10
verum;
uniqueness
for b1, b2 being compositional ManySortedFunction of [:B,A:] holds b1 = b2
proof
let M1, M2 be compositional ManySortedFunction of [:B,A:]; ::_thesis: M1 = M2
now__::_thesis:_for_i,_j_being_set_st_i_in_B_&_j_in_A_holds_
M1_._(i,j)_=_M2_._(i,j)
let i, j be set ; ::_thesis: ( i in B & j in A implies M1 . (i,j) = M2 . (i,j) )
assume ( i in B & j in A ) ; ::_thesis: M1 . (i,j) = M2 . (i,j)
then A1: [i,j] in [:B,A:] by ZFMISC_1:87;
then [i,j] in dom M1 by PARTFUN1:def_2;
then consider f1, g1 being Function such that
A2: [i,j] = [g1,f1] and
A3: M1 . [i,j] = g1 * f1 by Def9;
[i,j] in dom M2 by A1, PARTFUN1:def_2;
then consider f2, g2 being Function such that
A4: [i,j] = [g2,f2] and
A5: M2 . [i,j] = g2 * f2 by Def9;
g1 = g2 by A2, A4, XTUPLE_0:1;
hence M1 . (i,j) = M2 . (i,j) by A2, A3, A4, A5, XTUPLE_0:1; ::_thesis: verum
end;
hence M1 = M2 by Th6; ::_thesis: verum
end;
correctness
existence
ex b1 being compositional ManySortedFunction of [:B,A:] st verum;
;
end;
:: deftheorem Def10 defines FuncComp ALTCAT_1:def_10_:_
for A, B being functional set
for b3 being compositional ManySortedFunction of [:B,A:] holds
( b3 = FuncComp (A,B) iff verum );
theorem Th12: :: ALTCAT_1:12
for A, B, C being set holds rng (FuncComp ((Funcs (A,B)),(Funcs (B,C)))) c= Funcs (A,C)
proof
let A, B, C be set ; ::_thesis: rng (FuncComp ((Funcs (A,B)),(Funcs (B,C)))) c= Funcs (A,C)
let i be set ; :: according to TARSKI:def_3 ::_thesis: ( not i in rng (FuncComp ((Funcs (A,B)),(Funcs (B,C)))) or i in Funcs (A,C) )
set F = FuncComp ((Funcs (A,B)),(Funcs (B,C)));
assume i in rng (FuncComp ((Funcs (A,B)),(Funcs (B,C)))) ; ::_thesis: i in Funcs (A,C)
then consider j being set such that
A1: j in dom (FuncComp ((Funcs (A,B)),(Funcs (B,C)))) and
A2: i = (FuncComp ((Funcs (A,B)),(Funcs (B,C)))) . j by FUNCT_1:def_3;
consider f, g being Function such that
A3: j = [g,f] and
A4: (FuncComp ((Funcs (A,B)),(Funcs (B,C)))) . j = g * f by A1, Def9;
dom (FuncComp ((Funcs (A,B)),(Funcs (B,C)))) = [:(Funcs (B,C)),(Funcs (A,B)):] by PARTFUN1:def_2;
then ( g in Funcs (B,C) & f in Funcs (A,B) ) by A1, A3, ZFMISC_1:87;
hence i in Funcs (A,C) by A2, A4, Th3; ::_thesis: verum
end;
theorem Th13: :: ALTCAT_1:13
for o being set holds FuncComp ({(id o)},{(id o)}) = ((id o),(id o)) :-> (id o)
proof
let o be set ; ::_thesis: FuncComp ({(id o)},{(id o)}) = ((id o),(id o)) :-> (id o)
A1: dom (FuncComp ({(id o)},{(id o)})) = [:{(id o)},{(id o)}:] by PARTFUN1:def_2;
rng (FuncComp ({(id o)},{(id o)})) c= {(id o)}
proof
let i be set ; :: according to TARSKI:def_3 ::_thesis: ( not i in rng (FuncComp ({(id o)},{(id o)})) or i in {(id o)} )
assume i in rng (FuncComp ({(id o)},{(id o)})) ; ::_thesis: i in {(id o)}
then consider j being set such that
A2: j in [:{(id o)},{(id o)}:] and
A3: i = (FuncComp ({(id o)},{(id o)})) . j by A1, FUNCT_1:def_3;
consider f, g being Function such that
A4: j = [g,f] and
A5: (FuncComp ({(id o)},{(id o)})) . j = g * f by A1, A2, Def9;
f in {(id o)} by A2, A4, ZFMISC_1:87;
then A6: f = id o by TARSKI:def_1;
g in {(id o)} by A2, A4, ZFMISC_1:87;
then ( o /\ o = o & g = id o ) by TARSKI:def_1;
then i = id o by A3, A5, A6, FUNCT_1:22;
hence i in {(id o)} by TARSKI:def_1; ::_thesis: verum
end;
then FuncComp ({(id o)},{(id o)}) is Function of [:{(id o)},{(id o)}:],{(id o)} by A1, RELSET_1:4;
hence FuncComp ({(id o)},{(id o)}) = ((id o),(id o)) :-> (id o) by FUNCOP_1:def_10; ::_thesis: verum
end;
theorem Th14: :: ALTCAT_1:14
for A, B being functional set
for A1 being Subset of A
for B1 being Subset of B holds FuncComp (A1,B1) = (FuncComp (A,B)) | [:B1,A1:]
proof
let A, B be functional set ; ::_thesis: for A1 being Subset of A
for B1 being Subset of B holds FuncComp (A1,B1) = (FuncComp (A,B)) | [:B1,A1:]
let A1 be Subset of A; ::_thesis: for B1 being Subset of B holds FuncComp (A1,B1) = (FuncComp (A,B)) | [:B1,A1:]
let B1 be Subset of B; ::_thesis: FuncComp (A1,B1) = (FuncComp (A,B)) | [:B1,A1:]
set f = (FuncComp (A,B)) | [:B1,A1:];
A1: dom (FuncComp (A,B)) = [:B,A:] by PARTFUN1:def_2;
then A2: dom ((FuncComp (A,B)) | [:B1,A1:]) = [:B1,A1:] by RELAT_1:62;
then reconsider f = (FuncComp (A,B)) | [:B1,A1:] as ManySortedFunction of [:B1,A1:] by PARTFUN1:def_2;
f is compositional
proof
let i be set ; :: according to ALTCAT_1:def_9 ::_thesis: ( i in dom f implies ex f, g being Function st
( i = [g,f] & f . i = g * f ) )
assume A3: i in dom f ; ::_thesis: ex f, g being Function st
( i = [g,f] & f . i = g * f )
then f . i = (FuncComp (A,B)) . i by A2, FUNCT_1:49;
hence ex f, g being Function st
( i = [g,f] & f . i = g * f ) by A1, A2, A3, Def9; ::_thesis: verum
end;
hence FuncComp (A1,B1) = (FuncComp (A,B)) | [:B1,A1:] by Def10; ::_thesis: verum
end;
definition
let C be non empty AltCatStr ;
attrC is quasi-functional means :Def11: :: ALTCAT_1:def 11
for a1, a2 being object of C holds <^a1,a2^> c= Funcs (a1,a2);
attrC is semi-functional means :Def12: :: ALTCAT_1:def 12
for a1, a2, a3 being object of C st <^a1,a2^> <> {} & <^a2,a3^> <> {} & <^a1,a3^> <> {} holds
for f being Morphism of a1,a2
for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9;
attrC is pseudo-functional means :Def13: :: ALTCAT_1:def 13
for o1, o2, o3 being object of C holds the Comp of C . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:];
end;
:: deftheorem Def11 defines quasi-functional ALTCAT_1:def_11_:_
for C being non empty AltCatStr holds
( C is quasi-functional iff for a1, a2 being object of C holds <^a1,a2^> c= Funcs (a1,a2) );
:: deftheorem Def12 defines semi-functional ALTCAT_1:def_12_:_
for C being non empty AltCatStr holds
( C is semi-functional iff for a1, a2, a3 being object of C st <^a1,a2^> <> {} & <^a2,a3^> <> {} & <^a1,a3^> <> {} holds
for f being Morphism of a1,a2
for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9 );
:: deftheorem Def13 defines pseudo-functional ALTCAT_1:def_13_:_
for C being non empty AltCatStr holds
( C is pseudo-functional iff for o1, o2, o3 being object of C holds the Comp of C . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:] );
registration
let X be non empty set ;
let A be ManySortedSet of [:X,X:];
let C be BinComp of A;
cluster AltCatStr(# X,A,C #) -> non empty ;
coherence
not AltCatStr(# X,A,C #) is empty ;
end;
registration
cluster non empty strict pseudo-functional for AltCatStr ;
existence
ex b1 being non empty AltCatStr st
( b1 is strict & b1 is pseudo-functional )
proof
A1: {[0,0,0]} = [:1,1,1:] by CARD_1:49, MCART_1:35;
then reconsider c = [0,0,0] .--> (FuncComp ((Funcs (0,0)),(Funcs (0,0)))) as ManySortedSet of [:1,1,1:] ;
reconsider c = c as ManySortedFunction of [:1,1,1:] ;
dom ([0,0] .--> (Funcs (0,0))) = {[0,0]} by FUNCOP_1:13
.= [:1,1:] by CARD_1:49, ZFMISC_1:29 ;
then reconsider m = [0,0] .--> (Funcs (0,0)) as ManySortedSet of [:1,1:] by PARTFUN1:def_2, RELAT_1:def_18;
A2: m . (0,0) = Funcs (0,0) by FUNCOP_1:72;
A3: 0 in 1 by CARD_1:49, TARSKI:def_1;
now__::_thesis:_for_i_being_set_st_i_in_[:1,1,1:]_holds_
c_._i_is_Function_of_({|m,m|}_._i),({|m|}_._i)
let i be set ; ::_thesis: ( i in [:1,1,1:] implies c . i is Function of ({|m,m|} . i),({|m|} . i) )
reconsider ci = c . i as Function ;
assume i in [:1,1,1:] ; ::_thesis: c . i is Function of ({|m,m|} . i),({|m|} . i)
then A4: i = [0,0,0] by A1, TARSKI:def_1;
then A5: c . i = FuncComp ((Funcs (0,0)),(Funcs (0,0))) by FUNCOP_1:72;
then A6: dom ci = [:(m . (0,0)),(m . (0,0)):] by A2, PARTFUN1:def_2
.= {|m,m|} . (0,0,0) by A3, Def4
.= {|m,m|} . i by A4, MULTOP_1:def_1 ;
A7: {|m|} . i = {|m|} . (0,0,0) by A4, MULTOP_1:def_1
.= m . (0,0) by A3, Def3 ;
then rng ci c= {|m|} . i by A2, A5, Th12;
hence c . i is Function of ({|m,m|} . i),({|m|} . i) by A2, A6, A7, FUNCT_2:def_1, RELSET_1:4; ::_thesis: verum
end;
then reconsider c = c as BinComp of m by PBOOLE:def_15;
take C = AltCatStr(# 1,m,c #); ::_thesis: ( C is strict & C is pseudo-functional )
thus C is strict ; ::_thesis: C is pseudo-functional
let o1, o2, o3 be object of C; :: according to ALTCAT_1:def_13 ::_thesis: the Comp of C . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]
A8: o3 = 0 by CARD_1:49, TARSKI:def_1;
A9: ( o1 = 0 & o2 = 0 ) by CARD_1:49, TARSKI:def_1;
then A10: dom (FuncComp ((Funcs (0,0)),(Funcs (0,0)))) = [:<^o2,o3^>,<^o1,o2^>:] by A2, A8, PARTFUN1:def_2;
thus the Comp of C . (o1,o2,o3) = c . [o1,o2,o3] by MULTOP_1:def_1
.= FuncComp ((Funcs (0,0)),(Funcs (0,0))) by A9, A8, FUNCOP_1:72
.= (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:] by A9, A8, A10, RELAT_1:68 ; ::_thesis: verum
end;
end;
theorem :: ALTCAT_1:15
for C being non empty AltCatStr
for a1, a2, a3 being object of C holds the Comp of C . (a1,a2,a3) is Function of [:<^a2,a3^>,<^a1,a2^>:],<^a1,a3^> ;
theorem Th16: :: ALTCAT_1:16
for C being non empty pseudo-functional AltCatStr
for a1, a2, a3 being object of C st <^a1,a2^> <> {} & <^a2,a3^> <> {} & <^a1,a3^> <> {} holds
for f being Morphism of a1,a2
for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9
proof
let C be non empty pseudo-functional AltCatStr ; ::_thesis: for a1, a2, a3 being object of C st <^a1,a2^> <> {} & <^a2,a3^> <> {} & <^a1,a3^> <> {} holds
for f being Morphism of a1,a2
for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9
let a1, a2, a3 be object of C; ::_thesis: ( <^a1,a2^> <> {} & <^a2,a3^> <> {} & <^a1,a3^> <> {} implies for f being Morphism of a1,a2
for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9 )
assume that
A1: ( <^a1,a2^> <> {} & <^a2,a3^> <> {} ) and
A2: <^a1,a3^> <> {} ; ::_thesis: for f being Morphism of a1,a2
for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9
let f be Morphism of a1,a2; ::_thesis: for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9
let g be Morphism of a2,a3; ::_thesis: for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9
let f9, g9 be Function; ::_thesis: ( f = f9 & g = g9 implies g * f = g9 * f9 )
assume A3: ( f = f9 & g = g9 ) ; ::_thesis: g * f = g9 * f9
A4: [g,f] in [:<^a2,a3^>,<^a1,a2^>:] by A1, ZFMISC_1:87;
A5: the Comp of C . (a1,a2,a3) = (FuncComp ((Funcs (a1,a2)),(Funcs (a2,a3)))) | [:<^a2,a3^>,<^a1,a2^>:] by Def13;
( dom ((FuncComp ((Funcs (a1,a2)),(Funcs (a2,a3)))) | [:<^a2,a3^>,<^a1,a2^>:]) c= dom (FuncComp ((Funcs (a1,a2)),(Funcs (a2,a3)))) & dom ( the Comp of C . (a1,a2,a3)) = [:<^a2,a3^>,<^a1,a2^>:] ) by A2, FUNCT_2:def_1, RELAT_1:60;
then consider f99, g99 being Function such that
A6: [g,f] = [g99,f99] and
A7: (FuncComp ((Funcs (a1,a2)),(Funcs (a2,a3)))) . [g,f] = g99 * f99 by A5, A4, Def9;
A8: ( g = g99 & f = f99 ) by A6, XTUPLE_0:1;
thus g * f = ( the Comp of C . (a1,a2,a3)) . (g,f) by A1, Def8
.= g9 * f9 by A5, A3, A4, A7, A8, FUNCT_1:49 ; ::_thesis: verum
end;
definition
let A be non empty set ;
func EnsCat A -> non empty strict pseudo-functional AltCatStr means :Def14: :: ALTCAT_1:def 14
( the carrier of it = A & ( for a1, a2 being object of it holds <^a1,a2^> = Funcs (a1,a2) ) );
existence
ex b1 being non empty strict pseudo-functional AltCatStr st
( the carrier of b1 = A & ( for a1, a2 being object of b1 holds <^a1,a2^> = Funcs (a1,a2) ) )
proof
deffunc H1( set , set , set ) -> compositional ManySortedFunction of [:(Funcs ($2,$3)),(Funcs ($1,$2)):] = FuncComp ((Funcs ($1,$2)),(Funcs ($2,$3)));
consider M being ManySortedSet of [:A,A:] such that
A1: for i, j being set st i in A & j in A holds
M . (i,j) = Funcs (i,j) from ALTCAT_1:sch_1();
consider c being ManySortedSet of [:A,A,A:] such that
A2: for i, j, k being set st i in A & j in A & k in A holds
c . (i,j,k) = H1(i,j,k) from ALTCAT_1:sch_3();
c is Function-yielding
proof
let i be set ; :: according to FUNCOP_1:def_6 ::_thesis: ( not i in proj1 c or c . i is set )
assume i in dom c ; ::_thesis: c . i is set
then i in [:A,A,A:] by PARTFUN1:def_2;
then consider x1, x2, x3 being set such that
A3: ( x1 in A & x2 in A & x3 in A ) and
A4: i = [x1,x2,x3] by MCART_1:68;
c . i = c . (x1,x2,x3) by A4, MULTOP_1:def_1
.= FuncComp ((Funcs (x1,x2)),(Funcs (x2,x3))) by A2, A3 ;
hence c . i is set ; ::_thesis: verum
end;
then reconsider c = c as ManySortedFunction of [:A,A,A:] ;
now__::_thesis:_for_i_being_set_st_i_in_[:A,A,A:]_holds_
c_._i_is_Function_of_({|M,M|}_._i),({|M|}_._i)
let i be set ; ::_thesis: ( i in [:A,A,A:] implies c . i is Function of ({|M,M|} . i),({|M|} . i) )
reconsider ci = c . i as Function ;
assume i in [:A,A,A:] ; ::_thesis: c . i is Function of ({|M,M|} . i),({|M|} . i)
then consider x1, x2, x3 being set such that
A5: x1 in A and
A6: x2 in A and
A7: x3 in A and
A8: i = [x1,x2,x3] by MCART_1:68;
A9: {|M|} . i = {|M|} . (x1,x2,x3) by A8, MULTOP_1:def_1
.= M . (x1,x3) by A5, A6, A7, Def3 ;
A10: c . i = c . (x1,x2,x3) by A8, MULTOP_1:def_1
.= FuncComp ((Funcs (x1,x2)),(Funcs (x2,x3))) by A2, A5, A6, A7 ;
( M . (x1,x2) = Funcs (x1,x2) & M . (x2,x3) = Funcs (x2,x3) ) by A1, A5, A6, A7;
then A11: [:(Funcs (x2,x3)),(Funcs (x1,x2)):] = {|M,M|} . (x1,x2,x3) by A5, A6, A7, Def4
.= {|M,M|} . i by A8, MULTOP_1:def_1 ;
M . (x1,x3) = Funcs (x1,x3) by A1, A5, A7;
then A12: rng ci c= {|M|} . i by A10, A9, Th12;
dom ci = [:(Funcs (x2,x3)),(Funcs (x1,x2)):] by A10, PARTFUN1:def_2;
hence c . i is Function of ({|M,M|} . i),({|M|} . i) by A11, A12, FUNCT_2:2; ::_thesis: verum
end;
then reconsider c = c as BinComp of M by PBOOLE:def_15;
set C = AltCatStr(# A,M,c #);
AltCatStr(# A,M,c #) is pseudo-functional
proof
let o1, o2, o3 be object of AltCatStr(# A,M,c #); :: according to ALTCAT_1:def_13 ::_thesis: the Comp of AltCatStr(# A,M,c #) . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]
( <^o1,o2^> = Funcs (o1,o2) & <^o2,o3^> = Funcs (o2,o3) ) by A1;
then A13: dom (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) = [:<^o2,o3^>,<^o1,o2^>:] by PARTFUN1:def_2;
thus the Comp of AltCatStr(# A,M,c #) . (o1,o2,o3) = FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3))) by A2
.= (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:] by A13, RELAT_1:68 ; ::_thesis: verum
end;
then reconsider C = AltCatStr(# A,M,c #) as non empty strict pseudo-functional AltCatStr ;
take C ; ::_thesis: ( the carrier of C = A & ( for a1, a2 being object of C holds <^a1,a2^> = Funcs (a1,a2) ) )
thus the carrier of C = A ; ::_thesis: for a1, a2 being object of C holds <^a1,a2^> = Funcs (a1,a2)
let a1, a2 be object of C; ::_thesis: <^a1,a2^> = Funcs (a1,a2)
thus <^a1,a2^> = Funcs (a1,a2) by A1; ::_thesis: verum
end;
uniqueness
for b1, b2 being non empty strict pseudo-functional AltCatStr st the carrier of b1 = A & ( for a1, a2 being object of b1 holds <^a1,a2^> = Funcs (a1,a2) ) & the carrier of b2 = A & ( for a1, a2 being object of b2 holds <^a1,a2^> = Funcs (a1,a2) ) holds
b1 = b2
proof
let C1, C2 be non empty strict pseudo-functional AltCatStr ; ::_thesis: ( the carrier of C1 = A & ( for a1, a2 being object of C1 holds <^a1,a2^> = Funcs (a1,a2) ) & the carrier of C2 = A & ( for a1, a2 being object of C2 holds <^a1,a2^> = Funcs (a1,a2) ) implies C1 = C2 )
assume that
A14: the carrier of C1 = A and
A15: for a1, a2 being object of C1 holds <^a1,a2^> = Funcs (a1,a2) and
A16: the carrier of C2 = A and
A17: for a1, a2 being object of C2 holds <^a1,a2^> = Funcs (a1,a2) ; ::_thesis: C1 = C2
A18: now__::_thesis:_for_i,_j_being_set_st_i_in_A_&_j_in_A_holds_
the_Arrows_of_C1_._(i,j)_=_the_Arrows_of_C2_._(i,j)
let i, j be set ; ::_thesis: ( i in A & j in A implies the Arrows of C1 . (i,j) = the Arrows of C2 . (i,j) )
assume A19: ( i in A & j in A ) ; ::_thesis: the Arrows of C1 . (i,j) = the Arrows of C2 . (i,j)
then reconsider a1 = i, a2 = j as object of C1 by A14;
reconsider b1 = i, b2 = j as object of C2 by A16, A19;
thus the Arrows of C1 . (i,j) = <^a1,a2^>
.= Funcs (a1,a2) by A15
.= <^b1,b2^> by A17
.= the Arrows of C2 . (i,j) ; ::_thesis: verum
end;
A20: now__::_thesis:_for_i,_j,_k_being_set_st_i_in_A_&_j_in_A_&_k_in_A_holds_
the_Comp_of_C1_._(i,j,k)_=_the_Comp_of_C2_._(i,j,k)
let i, j, k be set ; ::_thesis: ( i in A & j in A & k in A implies the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k) )
assume A21: ( i in A & j in A & k in A ) ; ::_thesis: the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k)
then reconsider a1 = i, a2 = j, a3 = k as object of C1 by A14;
reconsider b1 = i, b2 = j, b3 = k as object of C2 by A16, A21;
( <^a2,a3^> = <^b2,b3^> & <^a1,a2^> = <^b1,b2^> ) by A14, A18;
hence the Comp of C1 . (i,j,k) = (FuncComp ((Funcs (b1,b2)),(Funcs (b2,b3)))) | [:<^b2,b3^>,<^b1,b2^>:] by Def13
.= the Comp of C2 . (i,j,k) by Def13 ;
::_thesis: verum
end;
the Arrows of C1 = the Arrows of C2 by A14, A16, A18, Th6;
hence C1 = C2 by A14, A16, A20, Th8; ::_thesis: verum
end;
end;
:: deftheorem Def14 defines EnsCat ALTCAT_1:def_14_:_
for A being non empty set
for b2 being non empty strict pseudo-functional AltCatStr holds
( b2 = EnsCat A iff ( the carrier of b2 = A & ( for a1, a2 being object of b2 holds <^a1,a2^> = Funcs (a1,a2) ) ) );
definition
let C be non empty AltCatStr ;
attrC is associative means :Def15: :: ALTCAT_1:def 15
the Comp of C is associative ;
attrC is with_units means :Def16: :: ALTCAT_1:def 16
( the Comp of C is with_left_units & the Comp of C is with_right_units );
end;
:: deftheorem Def15 defines associative ALTCAT_1:def_15_:_
for C being non empty AltCatStr holds
( C is associative iff the Comp of C is associative );
:: deftheorem Def16 defines with_units ALTCAT_1:def_16_:_
for C being non empty AltCatStr holds
( C is with_units iff ( the Comp of C is with_left_units & the Comp of C is with_right_units ) );
Lm1: for A being non empty set holds
( EnsCat A is transitive & EnsCat A is associative & EnsCat A is with_units )
proof
let A be non empty set ; ::_thesis: ( EnsCat A is transitive & EnsCat A is associative & EnsCat A is with_units )
set G = the Arrows of (EnsCat A);
set C = the Comp of (EnsCat A);
thus A1: EnsCat A is transitive ::_thesis: ( EnsCat A is associative & EnsCat A is with_units )
proof
let o1, o2, o3 be object of (EnsCat A); :: according to ALTCAT_1:def_2 ::_thesis: ( <^o1,o2^> <> {} & <^o2,o3^> <> {} implies <^o1,o3^> <> {} )
assume ( <^o1,o2^> <> {} & <^o2,o3^> <> {} ) ; ::_thesis: <^o1,o3^> <> {}
then ( Funcs (o1,o2) <> {} & Funcs (o2,o3) <> {} ) by Def14;
then Funcs (o1,o3) <> {} by Th4;
hence <^o1,o3^> <> {} by Def14; ::_thesis: verum
end;
thus EnsCat A is associative ::_thesis: EnsCat A is with_units
proof
let i, j, k, l be Element of (EnsCat A); :: according to ALTCAT_1:def_5,ALTCAT_1:def_15 ::_thesis: for f, g, h being set st f in the Arrows of (EnsCat A) . (i,j) & g in the Arrows of (EnsCat A) . (j,k) & h in the Arrows of (EnsCat A) . (k,l) holds
( the Comp of (EnsCat A) . (i,k,l)) . (h,(( the Comp of (EnsCat A) . (i,j,k)) . (g,f))) = ( the Comp of (EnsCat A) . (i,j,l)) . ((( the Comp of (EnsCat A) . (j,k,l)) . (h,g)),f)
reconsider i9 = i, j9 = j, k9 = k, l9 = l as object of (EnsCat A) ;
let f, g, h be set ; ::_thesis: ( f in the Arrows of (EnsCat A) . (i,j) & g in the Arrows of (EnsCat A) . (j,k) & h in the Arrows of (EnsCat A) . (k,l) implies ( the Comp of (EnsCat A) . (i,k,l)) . (h,(( the Comp of (EnsCat A) . (i,j,k)) . (g,f))) = ( the Comp of (EnsCat A) . (i,j,l)) . ((( the Comp of (EnsCat A) . (j,k,l)) . (h,g)),f) )
assume that
A2: f in the Arrows of (EnsCat A) . (i,j) and
A3: g in the Arrows of (EnsCat A) . (j,k) and
A4: h in the Arrows of (EnsCat A) . (k,l) ; ::_thesis: ( the Comp of (EnsCat A) . (i,k,l)) . (h,(( the Comp of (EnsCat A) . (i,j,k)) . (g,f))) = ( the Comp of (EnsCat A) . (i,j,l)) . ((( the Comp of (EnsCat A) . (j,k,l)) . (h,g)),f)
reconsider h99 = h as Morphism of k9,l9 by A4;
reconsider g99 = g as Morphism of j9,k9 by A3;
A5: <^k9,l9^> = Funcs (k,l) by Def14;
( <^i9,j9^> = Funcs (i,j) & <^j9,k9^> = Funcs (j,k) ) by Def14;
then reconsider f9 = f, g9 = g, h9 = h as Function by A2, A3, A4, A5;
A6: the Arrows of (EnsCat A) . (k,l) = <^k9,l9^> ;
A7: <^j9,k9^> <> {} by A3;
then A8: <^j9,l9^> <> {} by A1, A4, A6, Def2;
then A9: h99 * g99 = h9 * g9 by A3, A4, Th16;
reconsider f99 = f as Morphism of i9,j9 by A2;
the Arrows of (EnsCat A) . (i,j) = <^i9,j9^> ;
then A10: <^i9,k9^> <> {} by A1, A2, A7, Def2;
then A11: g99 * f99 = g9 * f9 by A2, A3, Th16;
A12: <^i9,l9^> <> {} by A1, A4, A6, A10, Def2;
A13: ( the Comp of (EnsCat A) . (j,k,l)) . (h,g) = h99 * g99 by A3, A4, Def8;
( the Comp of (EnsCat A) . (i,j,k)) . (g,f) = g99 * f99 by A2, A3, Def8;
hence ( the Comp of (EnsCat A) . (i,k,l)) . (h,(( the Comp of (EnsCat A) . (i,j,k)) . (g,f))) = h99 * (g99 * f99) by A4, A10, Def8
.= h9 * (g9 * f9) by A4, A10, A12, A11, Th16
.= (h9 * g9) * f9 by RELAT_1:36
.= (h99 * g99) * f99 by A2, A8, A12, A9, Th16
.= ( the Comp of (EnsCat A) . (i,j,l)) . ((( the Comp of (EnsCat A) . (j,k,l)) . (h,g)),f) by A2, A8, A13, Def8 ;
::_thesis: verum
end;
thus the Comp of (EnsCat A) is with_left_units :: according to ALTCAT_1:def_16 ::_thesis: the Comp of (EnsCat A) is with_right_units
proof
let i be Element of (EnsCat A); :: according to ALTCAT_1:def_7 ::_thesis: ex e being set st
( e in the Arrows of (EnsCat A) . (i,i) & ( for i being Element of the carrier of (EnsCat A)
for f being set st f in the Arrows of (EnsCat A) . (i,i) holds
( the Comp of (EnsCat A) . (i,i,i)) . (e,f) = f ) )
reconsider i9 = i as object of (EnsCat A) ;
take id i ; ::_thesis: ( id i in the Arrows of (EnsCat A) . (i,i) & ( for i being Element of the carrier of (EnsCat A)
for f being set st f in the Arrows of (EnsCat A) . (i,i) holds
( the Comp of (EnsCat A) . (i,i,i)) . ((id i),f) = f ) )
A14: <^i9,i9^> = Funcs (i,i) by Def14;
hence id i in the Arrows of (EnsCat A) . (i,i) by Th1; ::_thesis: for i being Element of the carrier of (EnsCat A)
for f being set st f in the Arrows of (EnsCat A) . (i,i) holds
( the Comp of (EnsCat A) . (i,i,i)) . ((id i),f) = f
reconsider I = id i as Morphism of i9,i9 by A14, Th1;
let j be Element of (EnsCat A); ::_thesis: for f being set st f in the Arrows of (EnsCat A) . (j,i) holds
( the Comp of (EnsCat A) . (j,i,i)) . ((id i),f) = f
let f be set ; ::_thesis: ( f in the Arrows of (EnsCat A) . (j,i) implies ( the Comp of (EnsCat A) . (j,i,i)) . ((id i),f) = f )
reconsider j9 = j as object of (EnsCat A) ;
assume A15: f in the Arrows of (EnsCat A) . (j,i) ; ::_thesis: ( the Comp of (EnsCat A) . (j,i,i)) . ((id i),f) = f
then reconsider f99 = f as Morphism of j9,i9 ;
<^j9,i9^> = Funcs (j,i) by Def14;
then reconsider f9 = f as Function of j,i by A15, FUNCT_2:66;
thus ( the Comp of (EnsCat A) . (j,i,i)) . ((id i),f) = I * f99 by A14, A15, Def8
.= (id i) * f9 by A14, A15, Th16
.= f by FUNCT_2:17 ; ::_thesis: verum
end;
let i be Element of (EnsCat A); :: according to ALTCAT_1:def_6 ::_thesis: ex e being set st
( e in the Arrows of (EnsCat A) . (i,i) & ( for j being Element of the carrier of (EnsCat A)
for f being set st f in the Arrows of (EnsCat A) . (i,j) holds
( the Comp of (EnsCat A) . (i,i,j)) . (f,e) = f ) )
reconsider i9 = i as object of (EnsCat A) ;
take id i ; ::_thesis: ( id i in the Arrows of (EnsCat A) . (i,i) & ( for j being Element of the carrier of (EnsCat A)
for f being set st f in the Arrows of (EnsCat A) . (i,j) holds
( the Comp of (EnsCat A) . (i,i,j)) . (f,(id i)) = f ) )
A16: <^i9,i9^> = Funcs (i,i) by Def14;
hence id i in the Arrows of (EnsCat A) . (i,i) by Th1; ::_thesis: for j being Element of the carrier of (EnsCat A)
for f being set st f in the Arrows of (EnsCat A) . (i,j) holds
( the Comp of (EnsCat A) . (i,i,j)) . (f,(id i)) = f
reconsider I = id i as Morphism of i9,i9 by A16, Th1;
let j be Element of (EnsCat A); ::_thesis: for f being set st f in the Arrows of (EnsCat A) . (i,j) holds
( the Comp of (EnsCat A) . (i,i,j)) . (f,(id i)) = f
let f be set ; ::_thesis: ( f in the Arrows of (EnsCat A) . (i,j) implies ( the Comp of (EnsCat A) . (i,i,j)) . (f,(id i)) = f )
reconsider j9 = j as object of (EnsCat A) ;
assume A17: f in the Arrows of (EnsCat A) . (i,j) ; ::_thesis: ( the Comp of (EnsCat A) . (i,i,j)) . (f,(id i)) = f
then reconsider f99 = f as Morphism of i9,j9 ;
<^i9,j9^> = Funcs (i,j) by Def14;
then reconsider f9 = f as Function of i,j by A17, FUNCT_2:66;
thus ( the Comp of (EnsCat A) . (i,i,j)) . (f,(id i)) = f99 * I by A16, A17, Def8
.= f9 * (id i) by A16, A17, Th16
.= f by FUNCT_2:17 ; ::_thesis: verum
end;
registration
cluster non empty transitive strict associative with_units for AltCatStr ;
existence
ex b1 being non empty AltCatStr st
( b1 is transitive & b1 is associative & b1 is with_units & b1 is strict )
proof
take EnsCat {{}} ; ::_thesis: ( EnsCat {{}} is transitive & EnsCat {{}} is associative & EnsCat {{}} is with_units & EnsCat {{}} is strict )
thus ( EnsCat {{}} is transitive & EnsCat {{}} is associative & EnsCat {{}} is with_units & EnsCat {{}} is strict ) by Lm1; ::_thesis: verum
end;
end;
theorem :: ALTCAT_1:17
for C being non empty transitive AltCatStr
for a1, a2, a3 being object of C holds
( dom ( the Comp of C . (a1,a2,a3)) = [:<^a2,a3^>,<^a1,a2^>:] & rng ( the Comp of C . (a1,a2,a3)) c= <^a1,a3^> )
proof
let C be non empty transitive AltCatStr ; ::_thesis: for a1, a2, a3 being object of C holds
( dom ( the Comp of C . (a1,a2,a3)) = [:<^a2,a3^>,<^a1,a2^>:] & rng ( the Comp of C . (a1,a2,a3)) c= <^a1,a3^> )
let a1, a2, a3 be object of C; ::_thesis: ( dom ( the Comp of C . (a1,a2,a3)) = [:<^a2,a3^>,<^a1,a2^>:] & rng ( the Comp of C . (a1,a2,a3)) c= <^a1,a3^> )
( not <^a1,a3^> = {} or <^a1,a2^> = {} or <^a2,a3^> = {} ) by Def2;
then ( <^a1,a3^> = {} implies [:<^a2,a3^>,<^a1,a2^>:] = {} ) ;
hence ( dom ( the Comp of C . (a1,a2,a3)) = [:<^a2,a3^>,<^a1,a2^>:] & rng ( the Comp of C . (a1,a2,a3)) c= <^a1,a3^> ) by FUNCT_2:def_1, RELAT_1:def_19; ::_thesis: verum
end;
theorem Th18: :: ALTCAT_1:18
for C being non empty with_units AltCatStr
for o being object of C holds <^o,o^> <> {}
proof
let C be non empty with_units AltCatStr ; ::_thesis: for o being object of C holds <^o,o^> <> {}
let o be object of C; ::_thesis: <^o,o^> <> {}
the Comp of C is with_left_units by Def16;
then ex e being set st
( e in the Arrows of C . (o,o) & ( for o9 being Element of C
for f being set st f in the Arrows of C . (o9,o) holds
( the Comp of C . (o9,o,o)) . (e,f) = f ) ) by Def7;
hence <^o,o^> <> {} ; ::_thesis: verum
end;
registration
let A be non empty set ;
cluster EnsCat A -> non empty transitive strict pseudo-functional associative with_units ;
coherence
( EnsCat A is transitive & EnsCat A is associative & EnsCat A is with_units ) by Lm1;
end;
registration
cluster non empty transitive quasi-functional semi-functional -> non empty pseudo-functional for AltCatStr ;
coherence
for b1 being non empty AltCatStr st b1 is quasi-functional & b1 is semi-functional & b1 is transitive holds
b1 is pseudo-functional
proof
let C be non empty AltCatStr ; ::_thesis: ( C is quasi-functional & C is semi-functional & C is transitive implies C is pseudo-functional )
assume A1: ( C is quasi-functional & C is semi-functional & C is transitive ) ; ::_thesis: C is pseudo-functional
let o1, o2, o3 be object of C; :: according to ALTCAT_1:def_13 ::_thesis: the Comp of C . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]
set c = the Comp of C . (o1,o2,o3);
set f = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:];
percases ( <^o2,o3^> = {} or <^o1,o2^> = {} or ( <^o2,o3^> <> {} & <^o1,o2^> <> {} ) ) ;
supposeA2: ( <^o2,o3^> = {} or <^o1,o2^> = {} ) ; ::_thesis: the Comp of C . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]
hence the Comp of C . (o1,o2,o3) = {}
.= (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:] by A2 ;
::_thesis: verum
end;
supposeA3: ( <^o2,o3^> <> {} & <^o1,o2^> <> {} ) ; ::_thesis: the Comp of C . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]
then A4: <^o1,o3^> <> {} by A1, Def2;
then A5: dom ( the Comp of C . (o1,o2,o3)) = [:<^o2,o3^>,<^o1,o2^>:] by FUNCT_2:def_1;
A6: ( <^o2,o3^> c= Funcs (o2,o3) & <^o1,o2^> c= Funcs (o1,o2) ) by A1, Def11;
dom (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) = [:(Funcs (o2,o3)),(Funcs (o1,o2)):] by PARTFUN1:def_2;
then dom ((FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]) = [:(Funcs (o2,o3)),(Funcs (o1,o2)):] /\ [:<^o2,o3^>,<^o1,o2^>:] by RELAT_1:61;
then A7: dom ( the Comp of C . (o1,o2,o3)) = dom ((FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]) by A6, A5, XBOOLE_1:28, ZFMISC_1:96;
now__::_thesis:_for_i_being_set_st_i_in_dom_(_the_Comp_of_C_._(o1,o2,o3))_holds_
(_the_Comp_of_C_._(o1,o2,o3))_._i_=_((FuncComp_((Funcs_(o1,o2)),(Funcs_(o2,o3))))_|_[:<^o2,o3^>,<^o1,o2^>:])_._i
let i be set ; ::_thesis: ( i in dom ( the Comp of C . (o1,o2,o3)) implies ( the Comp of C . (o1,o2,o3)) . i = ((FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]) . i )
assume A8: i in dom ( the Comp of C . (o1,o2,o3)) ; ::_thesis: ( the Comp of C . (o1,o2,o3)) . i = ((FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]) . i
then consider i1, i2 being set such that
A9: i1 in <^o2,o3^> and
A10: i2 in <^o1,o2^> and
A11: i = [i1,i2] by A5, ZFMISC_1:84;
reconsider a2 = i2 as Morphism of o1,o2 by A10;
reconsider a1 = i1 as Morphism of o2,o3 by A9;
reconsider g = i1, h = i2 as Function by A6, A9, A10;
thus ( the Comp of C . (o1,o2,o3)) . i = ( the Comp of C . (o1,o2,o3)) . (a1,a2) by A11
.= a1 * a2 by A3, Def8
.= g * h by A1, A3, A4, Def12
.= (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) . (g,h) by A6, A9, A10, Th11
.= ((FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]) . i by A7, A8, A11, FUNCT_1:47 ; ::_thesis: verum
end;
hence the Comp of C . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:] by A7, FUNCT_1:2; ::_thesis: verum
end;
end;
end;
cluster non empty transitive pseudo-functional with_units -> non empty quasi-functional semi-functional for AltCatStr ;
coherence
for b1 being non empty AltCatStr st b1 is with_units & b1 is pseudo-functional & b1 is transitive holds
( b1 is quasi-functional & b1 is semi-functional )
proof
let C be non empty AltCatStr ; ::_thesis: ( C is with_units & C is pseudo-functional & C is transitive implies ( C is quasi-functional & C is semi-functional ) )
assume A12: ( C is with_units & C is pseudo-functional & C is transitive ) ; ::_thesis: ( C is quasi-functional & C is semi-functional )
thus C is quasi-functional ::_thesis: C is semi-functional
proof
let a1, a2 be object of C; :: according to ALTCAT_1:def_11 ::_thesis: <^a1,a2^> c= Funcs (a1,a2)
percases ( <^a1,a2^> = {} or <^a1,a2^> <> {} ) ;
suppose <^a1,a2^> = {} ; ::_thesis: <^a1,a2^> c= Funcs (a1,a2)
hence <^a1,a2^> c= Funcs (a1,a2) by XBOOLE_1:2; ::_thesis: verum
end;
supposeA13: <^a1,a2^> <> {} ; ::_thesis: <^a1,a2^> c= Funcs (a1,a2)
set c = the Comp of C . (a1,a1,a2);
set f = FuncComp ((Funcs (a1,a1)),(Funcs (a1,a2)));
A14: dom ( the Comp of C . (a1,a1,a2)) = [:<^a1,a2^>,<^a1,a1^>:] by A13, FUNCT_2:def_1;
( dom (FuncComp ((Funcs (a1,a1)),(Funcs (a1,a2)))) = [:(Funcs (a1,a2)),(Funcs (a1,a1)):] & the Comp of C . (a1,a1,a2) = (FuncComp ((Funcs (a1,a1)),(Funcs (a1,a2)))) | [:<^a1,a2^>,<^a1,a1^>:] ) by A12, Def13, PARTFUN1:def_2;
then A15: [:<^a1,a2^>,<^a1,a1^>:] c= [:(Funcs (a1,a2)),(Funcs (a1,a1)):] by A14, RELAT_1:60;
<^a1,a1^> <> {} by A12, Th18;
hence <^a1,a2^> c= Funcs (a1,a2) by A13, A15, ZFMISC_1:114; ::_thesis: verum
end;
end;
end;
let a1, a2, a3 be object of C; :: according to ALTCAT_1:def_12 ::_thesis: ( <^a1,a2^> <> {} & <^a2,a3^> <> {} & <^a1,a3^> <> {} implies for f being Morphism of a1,a2
for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9 )
thus ( <^a1,a2^> <> {} & <^a2,a3^> <> {} & <^a1,a3^> <> {} implies for f being Morphism of a1,a2
for g being Morphism of a2,a3
for f9, g9 being Function st f = f9 & g = g9 holds
g * f = g9 * f9 ) by A12, Th16; ::_thesis: verum
end;
end;
definition
mode category is non empty transitive associative with_units AltCatStr ;
end;
begin
definition
let C be non empty with_units AltCatStr ;
let o be object of C;
func idm o -> Morphism of o,o means :Def17: :: ALTCAT_1:def 17
for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * it = a;
existence
ex b1 being Morphism of o,o st
for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * b1 = a
proof
the Comp of C is with_right_units by Def16;
then consider e being set such that
A1: e in the Arrows of C . (o,o) and
A2: for o9 being Element of C
for f being set st f in the Arrows of C . (o,o9) holds
( the Comp of C . (o,o,o9)) . (f,e) = f by Def6;
reconsider e = e as Morphism of o,o by A1;
take e ; ::_thesis: for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * e = a
let o9 be object of C; ::_thesis: ( <^o,o9^> <> {} implies for a being Morphism of o,o9 holds a * e = a )
assume A3: <^o,o9^> <> {} ; ::_thesis: for a being Morphism of o,o9 holds a * e = a
let a be Morphism of o,o9; ::_thesis: a * e = a
thus a * e = ( the Comp of C . (o,o,o9)) . (a,e) by A1, A3, Def8
.= a by A2, A3 ; ::_thesis: verum
end;
uniqueness
for b1, b2 being Morphism of o,o st ( for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * b1 = a ) & ( for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * b2 = a ) holds
b1 = b2
proof
the Comp of C is with_left_units by Def16;
then consider d being set such that
A4: d in the Arrows of C . (o,o) and
A5: for o9 being Element of C
for f being set st f in the Arrows of C . (o9,o) holds
( the Comp of C . (o9,o,o)) . (d,f) = f by Def7;
reconsider d = d as Morphism of o,o by A4;
let a1, a2 be Morphism of o,o; ::_thesis: ( ( for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * a1 = a ) & ( for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * a2 = a ) implies a1 = a2 )
assume that
A6: for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * a1 = a and
A7: for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * a2 = a ; ::_thesis: a1 = a2
A8: <^o,o^> <> {} by Th18;
hence a1 = ( the Comp of C . (o,o,o)) . (d,a1) by A5
.= d * a1 by A8, Def8
.= d by A6, Th18
.= d * a2 by A7, Th18
.= ( the Comp of C . (o,o,o)) . (d,a2) by A8, Def8
.= a2 by A5, A8 ;
::_thesis: verum
end;
end;
:: deftheorem Def17 defines idm ALTCAT_1:def_17_:_
for C being non empty with_units AltCatStr
for o being object of C
for b3 being Morphism of o,o holds
( b3 = idm o iff for o9 being object of C st <^o,o9^> <> {} holds
for a being Morphism of o,o9 holds a * b3 = a );
theorem Th19: :: ALTCAT_1:19
for C being non empty with_units AltCatStr
for o being object of C holds idm o in <^o,o^>
proof
let C be non empty with_units AltCatStr ; ::_thesis: for o being object of C holds idm o in <^o,o^>
let o be object of C; ::_thesis: idm o in <^o,o^>
<^o,o^> <> {} by Th18;
hence idm o in <^o,o^> ; ::_thesis: verum
end;
theorem :: ALTCAT_1:20
for C being non empty with_units AltCatStr
for o1, o2 being object of C st <^o1,o2^> <> {} holds
for a being Morphism of o1,o2 holds (idm o2) * a = a
proof
let C be non empty with_units AltCatStr ; ::_thesis: for o1, o2 being object of C st <^o1,o2^> <> {} holds
for a being Morphism of o1,o2 holds (idm o2) * a = a
let o1, o2 be object of C; ::_thesis: ( <^o1,o2^> <> {} implies for a being Morphism of o1,o2 holds (idm o2) * a = a )
assume A1: <^o1,o2^> <> {} ; ::_thesis: for a being Morphism of o1,o2 holds (idm o2) * a = a
let a be Morphism of o1,o2; ::_thesis: (idm o2) * a = a
the Comp of C is with_left_units by Def16;
then consider d being set such that
A2: d in the Arrows of C . (o2,o2) and
A3: for o9 being Element of C
for f being set st f in the Arrows of C . (o9,o2) holds
( the Comp of C . (o9,o2,o2)) . (d,f) = f by Def7;
reconsider d = d as Morphism of o2,o2 by A2;
idm o2 in <^o2,o2^> by Th19;
then d = d * (idm o2) by Def17
.= ( the Comp of C . (o2,o2,o2)) . (d,(idm o2)) by A2, Def8
.= idm o2 by A3, Th19 ;
hence (idm o2) * a = ( the Comp of C . (o1,o2,o2)) . (d,a) by A1, A2, Def8
.= a by A1, A3 ;
::_thesis: verum
end;
theorem :: ALTCAT_1:21
for C being non empty transitive associative AltCatStr
for o1, o2, o3, o4 being object of C st <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o4^> <> {} holds
for a being Morphism of o1,o2
for b being Morphism of o2,o3
for c being Morphism of o3,o4 holds c * (b * a) = (c * b) * a
proof
let C be non empty transitive associative AltCatStr ; ::_thesis: for o1, o2, o3, o4 being object of C st <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o4^> <> {} holds
for a being Morphism of o1,o2
for b being Morphism of o2,o3
for c being Morphism of o3,o4 holds c * (b * a) = (c * b) * a
let o1, o2, o3, o4 be object of C; ::_thesis: ( <^o1,o2^> <> {} & <^o2,o3^> <> {} & <^o3,o4^> <> {} implies for a being Morphism of o1,o2
for b being Morphism of o2,o3
for c being Morphism of o3,o4 holds c * (b * a) = (c * b) * a )
assume that
A1: <^o1,o2^> <> {} and
A2: <^o2,o3^> <> {} and
A3: <^o3,o4^> <> {} ; ::_thesis: for a being Morphism of o1,o2
for b being Morphism of o2,o3
for c being Morphism of o3,o4 holds c * (b * a) = (c * b) * a
let a be Morphism of o1,o2; ::_thesis: for b being Morphism of o2,o3
for c being Morphism of o3,o4 holds c * (b * a) = (c * b) * a
let b be Morphism of o2,o3; ::_thesis: for c being Morphism of o3,o4 holds c * (b * a) = (c * b) * a
let c be Morphism of o3,o4; ::_thesis: c * (b * a) = (c * b) * a
A4: ( <^o2,o4^> <> {} & c * b = ( the Comp of C . (o2,o3,o4)) . (c,b) ) by A2, A3, Def2, Def8;
A5: the Comp of C is associative by Def15;
( <^o1,o3^> <> {} & b * a = ( the Comp of C . (o1,o2,o3)) . (b,a) ) by A1, A2, Def2, Def8;
hence c * (b * a) = ( the Comp of C . (o1,o3,o4)) . (c,(( the Comp of C . (o1,o2,o3)) . (b,a))) by A3, Def8
.= ( the Comp of C . (o1,o2,o4)) . ((( the Comp of C . (o2,o3,o4)) . (c,b)),a) by A1, A2, A3, A5, Def5
.= (c * b) * a by A1, A4, Def8 ;
::_thesis: verum
end;
begin
definition
let C be AltCatStr ;
attrC is quasi-discrete means :Def18: :: ALTCAT_1:def 18
for i, j being object of C st <^i,j^> <> {} holds
i = j;
attrC is pseudo-discrete means :Def19: :: ALTCAT_1:def 19
for i being object of C holds <^i,i^> is trivial ;
end;
:: deftheorem Def18 defines quasi-discrete ALTCAT_1:def_18_:_
for C being AltCatStr holds
( C is quasi-discrete iff for i, j being object of C st <^i,j^> <> {} holds
i = j );
:: deftheorem Def19 defines pseudo-discrete ALTCAT_1:def_19_:_
for C being AltCatStr holds
( C is pseudo-discrete iff for i being object of C holds <^i,i^> is trivial );
theorem :: ALTCAT_1:22
for C being non empty with_units AltCatStr holds
( C is pseudo-discrete iff for o being object of C holds <^o,o^> = {(idm o)} )
proof
let C be non empty with_units AltCatStr ; ::_thesis: ( C is pseudo-discrete iff for o being object of C holds <^o,o^> = {(idm o)} )
hereby ::_thesis: ( ( for o being object of C holds <^o,o^> = {(idm o)} ) implies C is pseudo-discrete )
assume A1: C is pseudo-discrete ; ::_thesis: for o being object of C holds <^o,o^> = {(idm o)}
let o be object of C; ::_thesis: <^o,o^> = {(idm o)}
now__::_thesis:_for_j_being_set_holds_
(_(_j_in_<^o,o^>_implies_j_=_idm_o_)_&_(_j_=_idm_o_implies_j_in_<^o,o^>_)_)
let j be set ; ::_thesis: ( ( j in <^o,o^> implies j = idm o ) & ( j = idm o implies j in <^o,o^> ) )
hereby ::_thesis: ( j = idm o implies j in <^o,o^> )
( idm o in <^o,o^> & <^o,o^> is trivial ) by A1, Def19, Th19;
then consider i being set such that
A2: <^o,o^> = {i} by ZFMISC_1:131;
assume j in <^o,o^> ; ::_thesis: j = idm o
then j = i by A2, TARSKI:def_1;
hence j = idm o by A2, TARSKI:def_1; ::_thesis: verum
end;
thus ( j = idm o implies j in <^o,o^> ) by Th19; ::_thesis: verum
end;
hence <^o,o^> = {(idm o)} by TARSKI:def_1; ::_thesis: verum
end;
assume A3: for o being object of C holds <^o,o^> = {(idm o)} ; ::_thesis: C is pseudo-discrete
let o be object of C; :: according to ALTCAT_1:def_19 ::_thesis: <^o,o^> is trivial
<^o,o^> = {(idm o)} by A3;
hence <^o,o^> is trivial ; ::_thesis: verum
end;
registration
cluster1 -element -> quasi-discrete for AltCatStr ;
coherence
for b1 being AltCatStr st b1 is 1 -element holds
b1 is quasi-discrete
proof
let C be AltCatStr ; ::_thesis: ( C is 1 -element implies C is quasi-discrete )
assume A1: C is 1 -element ; ::_thesis: C is quasi-discrete
let i, j be object of C; :: according to ALTCAT_1:def_18 ::_thesis: ( <^i,j^> <> {} implies i = j )
assume <^i,j^> <> {} ; ::_thesis: i = j
thus i = j by A1, STRUCT_0:def_10; ::_thesis: verum
end;
end;
theorem Th23: :: ALTCAT_1:23
( EnsCat 1 is pseudo-discrete & EnsCat 1 is 1 -element )
proof
A1: the carrier of (EnsCat 1) = {{}} by Def14, CARD_1:49;
hereby :: according to ALTCAT_1:def_19 ::_thesis: EnsCat 1 is 1 -element
let i be object of (EnsCat 1); ::_thesis: <^i,i^> is trivial
i = {} by A1, TARSKI:def_1;
hence <^i,i^> is trivial by Def14, Th2; ::_thesis: verum
end;
thus the carrier of (EnsCat 1) is 1 -element by A1; :: according to STRUCT_0:def_19 ::_thesis: verum
end;
registration
cluster non empty trivial transitive strict associative with_units pseudo-discrete for AltCatStr ;
existence
ex b1 being category st
( b1 is pseudo-discrete & b1 is trivial & b1 is strict ) by Th23;
end;
registration
cluster non empty trivial transitive strict associative with_units quasi-discrete pseudo-discrete for AltCatStr ;
existence
ex b1 being category st
( b1 is quasi-discrete & b1 is pseudo-discrete & b1 is trivial & b1 is strict ) by Th23;
end;
definition
mode discrete_category is quasi-discrete pseudo-discrete category;
end;
definition
let A be non empty set ;
func DiscrCat A -> non empty strict quasi-discrete AltCatStr means :Def20: :: ALTCAT_1:def 20
( the carrier of it = A & ( for i being object of it holds <^i,i^> = {(id i)} ) );
existence
ex b1 being non empty strict quasi-discrete AltCatStr st
( the carrier of b1 = A & ( for i being object of b1 holds <^i,i^> = {(id i)} ) )
proof
deffunc H1( Element of A, set , set ) -> set = IFEQ ($1,$2,(IFEQ ($2,$3,([(id $1),(id $1)] .--> (id $1)),{})),{});
deffunc H2( Element of A, set ) -> set = IFEQ ($1,$2,{(id $1)},{});
consider M being ManySortedSet of [:A,A:] such that
A1: for i, j being Element of A holds M . (i,j) = H2(i,j) from ALTCAT_1:sch_2();
consider c being ManySortedSet of [:A,A,A:] such that
A2: for i, j, k being Element of A holds c . (i,j,k) = H1(i,j,k) from ALTCAT_1:sch_4();
A3: now__::_thesis:_for_i_being_set_st_i_in_[:A,A,A:]_holds_
c_._i_is_Function_of_({|M,M|}_._i),({|M|}_._i)
let i be set ; ::_thesis: ( i in [:A,A,A:] implies c . b1 is Function of ({|M,M|} . b1),({|M|} . b1) )
assume i in [:A,A,A:] ; ::_thesis: c . b1 is Function of ({|M,M|} . b1),({|M|} . b1)
then consider i1, i2, i3 being set such that
A4: ( i1 in A & i2 in A & i3 in A ) and
A5: i = [i1,i2,i3] by MCART_1:68;
reconsider i1 = i1, i2 = i2, i3 = i3 as Element of A by A4;
percases ( ( i1 = i2 & i2 = i3 ) or i1 <> i2 or i2 <> i3 ) ;
supposethat A6: i1 = i2 and
A7: i2 = i3 ; ::_thesis: c . b1 is Function of ({|M,M|} . b1),({|M|} . b1)
A8: M . (i1,i1) = IFEQ (i1,i1,{(id i1)},{}) by A1
.= {(id i1)} by FUNCOP_1:def_8 ;
A9: c . i = c . (i1,i2,i3) by A5, MULTOP_1:def_1
.= IFEQ (i1,i2,(IFEQ (i2,i3,([(id i1),(id i1)] .--> (id i1)),{})),{}) by A2
.= IFEQ (i2,i3,([(id i1),(id i1)] .--> (id i1)),{}) by A6, FUNCOP_1:def_8
.= [(id i1),(id i1)] .--> (id i1) by A7, FUNCOP_1:def_8 ;
A10: {|M|} . i = {|M|} . (i1,i1,i1) by A5, A6, A7, MULTOP_1:def_1
.= {(id i1)} by A8, Def3 ;
{|M,M|} . i = {|M,M|} . (i1,i1,i1) by A5, A6, A7, MULTOP_1:def_1
.= [:{(id i1)},{(id i1)}:] by A8, Def4
.= {[(id i1),(id i1)]} by ZFMISC_1:29
.= dom ([(id i1),(id i1)] .--> (id i1)) by FUNCOP_1:13 ;
hence c . i is Function of ({|M,M|} . i),({|M|} . i) by A9, A10, FUNCT_2:def_1; ::_thesis: verum
end;
supposeA11: ( i1 <> i2 or i2 <> i3 ) ; ::_thesis: c . b1 is Function of ({|M,M|} . b1),({|M|} . b1)
A12: now__::_thesis:_c_._i_=_{}
percases ( i1 <> i2 or ( i1 = i2 & i2 <> i3 ) ) by A11;
supposeA13: i1 <> i2 ; ::_thesis: c . i = {}
thus c . i = c . (i1,i2,i3) by A5, MULTOP_1:def_1
.= IFEQ (i1,i2,(IFEQ (i2,i3,([(id i1),(id i1)] .--> (id i1)),{})),{}) by A2
.= {} by A13, FUNCOP_1:def_8 ; ::_thesis: verum
end;
supposethat A14: i1 = i2 and
A15: i2 <> i3 ; ::_thesis: c . i = {}
thus c . i = c . (i1,i2,i3) by A5, MULTOP_1:def_1
.= IFEQ (i1,i2,(IFEQ (i2,i3,([(id i1),(id i1)] .--> (id i1)),{})),{}) by A2
.= IFEQ (i2,i3,([(id i1),(id i1)] .--> (id i1)),{}) by A14, FUNCOP_1:def_8
.= {} by A15, FUNCOP_1:def_8 ; ::_thesis: verum
end;
end;
end;
( M . (i1,i2) = IFEQ (i1,i2,{(id i1)},{}) & M . (i2,i3) = IFEQ (i2,i3,{(id i2)},{}) ) by A1;
then A16: ( M . (i1,i2) = {} or M . (i2,i3) = {} ) by A11, FUNCOP_1:def_8;
{|M,M|} . i = {|M,M|} . (i1,i2,i3) by A5, MULTOP_1:def_1
.= [:(M . (i2,i3)),(M . (i1,i2)):] by Def4
.= {} by A16 ;
hence c . i is Function of ({|M,M|} . i),({|M|} . i) by A12, FUNCT_2:2, RELAT_1:38, XBOOLE_1:2; ::_thesis: verum
end;
end;
end;
c is Function-yielding
proof
let i be set ; :: according to FUNCOP_1:def_6 ::_thesis: ( not i in proj1 c or c . i is set )
assume i in dom c ; ::_thesis: c . i is set
then i in [:A,A,A:] by PARTFUN1:def_2;
hence c . i is set by A3; ::_thesis: verum
end;
then reconsider c = c as ManySortedFunction of [:A,A,A:] ;
reconsider c = c as BinComp of M by A3, PBOOLE:def_15;
set C = AltCatStr(# A,M,c #);
AltCatStr(# A,M,c #) is quasi-discrete
proof
let o1, o2 be object of AltCatStr(# A,M,c #); :: according to ALTCAT_1:def_18 ::_thesis: ( <^o1,o2^> <> {} implies o1 = o2 )
assume that
A17: <^o1,o2^> <> {} and
A18: o1 <> o2 ; ::_thesis: contradiction
<^o1,o2^> = IFEQ (o1,o2,{(id o1)},{}) by A1
.= {} by A18, FUNCOP_1:def_8 ;
hence contradiction by A17; ::_thesis: verum
end;
then reconsider C = AltCatStr(# A,M,c #) as non empty strict quasi-discrete AltCatStr ;
take C ; ::_thesis: ( the carrier of C = A & ( for i being object of C holds <^i,i^> = {(id i)} ) )
thus the carrier of C = A ; ::_thesis: for i being object of C holds <^i,i^> = {(id i)}
let i be object of C; ::_thesis: <^i,i^> = {(id i)}
thus <^i,i^> = IFEQ (i,i,{(id i)},{}) by A1
.= {(id i)} by FUNCOP_1:def_8 ; ::_thesis: verum
end;
correctness
uniqueness
for b1, b2 being non empty strict quasi-discrete AltCatStr st the carrier of b1 = A & ( for i being object of b1 holds <^i,i^> = {(id i)} ) & the carrier of b2 = A & ( for i being object of b2 holds <^i,i^> = {(id i)} ) holds
b1 = b2;
proof
let C1, C2 be non empty strict quasi-discrete AltCatStr ; ::_thesis: ( the carrier of C1 = A & ( for i being object of C1 holds <^i,i^> = {(id i)} ) & the carrier of C2 = A & ( for i being object of C2 holds <^i,i^> = {(id i)} ) implies C1 = C2 )
assume that
A19: the carrier of C1 = A and
A20: for i being object of C1 holds <^i,i^> = {(id i)} and
A21: the carrier of C2 = A and
A22: for i being object of C2 holds <^i,i^> = {(id i)} ; ::_thesis: C1 = C2
A23: now__::_thesis:_for_i,_j,_k_being_set_st_i_in_A_&_j_in_A_&_k_in_A_holds_
the_Comp_of_C1_._(i,j,k)_=_the_Comp_of_C2_._(i,j,k)
let i, j, k be set ; ::_thesis: ( i in A & j in A & k in A implies the Comp of C1 . (b1,b2,b3) = the Comp of C2 . (b1,b2,b3) )
assume that
A24: i in A and
A25: ( j in A & k in A ) ; ::_thesis: the Comp of C1 . (b1,b2,b3) = the Comp of C2 . (b1,b2,b3)
reconsider i2 = i as object of C2 by A21, A24;
reconsider i1 = i as object of C1 by A19, A24;
percases ( ( i = j & j = k ) or i <> j or j <> k ) ;
supposeA26: ( i = j & j = k ) ; ::_thesis: the Comp of C1 . (b1,b2,b3) = the Comp of C2 . (b1,b2,b3)
A27: ( <^i2,i2^> = {(id i2)} & the Comp of C2 . (i2,i2,i2) is Function of [:<^i2,i2^>,<^i2,i2^>:],<^i2,i2^> ) by A22;
( <^i1,i1^> = {(id i1)} & the Comp of C1 . (i1,i1,i1) is Function of [:<^i1,i1^>,<^i1,i1^>:],<^i1,i1^> ) by A20;
hence the Comp of C1 . (i,j,k) = ((id i),(id i)) :-> (id i) by A26, FUNCOP_1:def_10
.= the Comp of C2 . (i,j,k) by A26, A27, FUNCOP_1:def_10 ;
::_thesis: verum
end;
supposeA28: ( i <> j or j <> k ) ; ::_thesis: the Comp of C1 . (b1,b2,b3) = the Comp of C2 . (b1,b2,b3)
reconsider j1 = j, k1 = k as object of C1 by A19, A25;
A29: ( <^i1,j1^> = {} or <^j1,k1^> = {} ) by A28, Def18;
reconsider j2 = j, k2 = k as object of C2 by A21, A25;
A30: ( the Comp of C2 . (i2,j2,k2) is Function of [:<^j2,k2^>,<^i2,j2^>:],<^i2,k2^> & the Comp of C1 . (i1,j1,k1) is Function of [:<^j1,k1^>,<^i1,j1^>:],<^i1,k1^> ) ;
( <^i2,j2^> = {} or <^j2,k2^> = {} ) by A28, Def18;
hence the Comp of C1 . (i,j,k) = the Comp of C2 . (i,j,k) by A29, A30; ::_thesis: verum
end;
end;
end;
now__::_thesis:_for_i,_j_being_Element_of_A_holds_the_Arrows_of_C1_._(i,j)_=_the_Arrows_of_C2_._(i,j)
let i, j be Element of A; ::_thesis: the Arrows of C1 . (b1,b2) = the Arrows of C2 . (b1,b2)
reconsider i2 = i as object of C2 by A21;
reconsider i1 = i as object of C1 by A19;
percases ( i = j or i <> j ) ;
supposeA31: i = j ; ::_thesis: the Arrows of C1 . (b1,b2) = the Arrows of C2 . (b1,b2)
hence the Arrows of C1 . (i,j) = <^i1,i1^>
.= {(id i)} by A20
.= <^i2,i2^> by A22
.= the Arrows of C2 . (i,j) by A31 ;
::_thesis: verum
end;
supposeA32: i <> j ; ::_thesis: the Arrows of C1 . (b1,b2) = the Arrows of C2 . (b1,b2)
reconsider j2 = j as object of C2 by A21;
reconsider j1 = j as object of C1 by A19;
thus the Arrows of C1 . (i,j) = <^i1,j1^>
.= {} by A32, Def18
.= <^i2,j2^> by A32, Def18
.= the Arrows of C2 . (i,j) ; ::_thesis: verum
end;
end;
end;
then the Arrows of C1 = the Arrows of C2 by A19, A21, Th7;
hence C1 = C2 by A19, A21, A23, Th8; ::_thesis: verum
end;
end;
:: deftheorem Def20 defines DiscrCat ALTCAT_1:def_20_:_
for A being non empty set
for b2 being non empty strict quasi-discrete AltCatStr holds
( b2 = DiscrCat A iff ( the carrier of b2 = A & ( for i being object of b2 holds <^i,i^> = {(id i)} ) ) );
registration
cluster quasi-discrete -> transitive for AltCatStr ;
coherence
for b1 being AltCatStr st b1 is quasi-discrete holds
b1 is transitive
proof
let C be AltCatStr ; ::_thesis: ( C is quasi-discrete implies C is transitive )
assume A1: C is quasi-discrete ; ::_thesis: C is transitive
let o1, o2, o3 be object of C; :: according to ALTCAT_1:def_2 ::_thesis: ( <^o1,o2^> <> {} & <^o2,o3^> <> {} implies <^o1,o3^> <> {} )
assume ( <^o1,o2^> <> {} & <^o2,o3^> <> {} ) ; ::_thesis: <^o1,o3^> <> {}
hence <^o1,o3^> <> {} by A1, Def18; ::_thesis: verum
end;
end;
theorem Th24: :: ALTCAT_1:24
for A being non empty set
for o1, o2, o3 being object of (DiscrCat A) st ( o1 <> o2 or o2 <> o3 ) holds
the Comp of (DiscrCat A) . (o1,o2,o3) = {}
proof
let A be non empty set ; ::_thesis: for o1, o2, o3 being object of (DiscrCat A) st ( o1 <> o2 or o2 <> o3 ) holds
the Comp of (DiscrCat A) . (o1,o2,o3) = {}
let o1, o2, o3 be object of (DiscrCat A); ::_thesis: ( ( o1 <> o2 or o2 <> o3 ) implies the Comp of (DiscrCat A) . (o1,o2,o3) = {} )
assume ( o1 <> o2 or o2 <> o3 ) ; ::_thesis: the Comp of (DiscrCat A) . (o1,o2,o3) = {}
then ( <^o1,o2^> = {} or <^o2,o3^> = {} ) by Def18;
hence the Comp of (DiscrCat A) . (o1,o2,o3) = {} ; ::_thesis: verum
end;
theorem Th25: :: ALTCAT_1:25
for A being non empty set
for o being object of (DiscrCat A) holds the Comp of (DiscrCat A) . (o,o,o) = ((id o),(id o)) :-> (id o)
proof
let A be non empty set ; ::_thesis: for o being object of (DiscrCat A) holds the Comp of (DiscrCat A) . (o,o,o) = ((id o),(id o)) :-> (id o)
let o be object of (DiscrCat A); ::_thesis: the Comp of (DiscrCat A) . (o,o,o) = ((id o),(id o)) :-> (id o)
<^o,o^> = {(id o)} by Def20;
hence the Comp of (DiscrCat A) . (o,o,o) = ((id o),(id o)) :-> (id o) by FUNCOP_1:def_10; ::_thesis: verum
end;
registration
let A be non empty set ;
cluster DiscrCat A -> non empty strict pseudo-functional associative with_units quasi-discrete pseudo-discrete ;
coherence
( DiscrCat A is pseudo-functional & DiscrCat A is pseudo-discrete & DiscrCat A is with_units & DiscrCat A is associative )
proof
set C = DiscrCat A;
thus DiscrCat A is pseudo-functional ::_thesis: ( DiscrCat A is pseudo-discrete & DiscrCat A is with_units & DiscrCat A is associative )
proof
let o1, o2, o3 be object of (DiscrCat A); :: according to ALTCAT_1:def_13 ::_thesis: the Comp of (DiscrCat A) . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]
A1: id o1 in Funcs (o1,o1) by Th1;
percases ( ( o1 = o2 & o2 = o3 ) or o1 <> o2 or o2 <> o3 ) ;
supposeA2: ( o1 = o2 & o2 = o3 ) ; ::_thesis: the Comp of (DiscrCat A) . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]
then A3: <^o2,o3^> = {(id o1)} by Def20;
then A4: <^o1,o2^> c= Funcs (o1,o2) by A1, A2, ZFMISC_1:31;
thus the Comp of (DiscrCat A) . (o1,o2,o3) = ((id o1),(id o1)) :-> (id o1) by A2, Th25
.= FuncComp ({(id o1)},{(id o1)}) by Th13
.= (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:] by A2, A3, A4, Th14 ; ::_thesis: verum
end;
supposeA5: ( o1 <> o2 or o2 <> o3 ) ; ::_thesis: the Comp of (DiscrCat A) . (o1,o2,o3) = (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:]
then A6: ( <^o2,o3^> = {} or <^o1,o2^> = {} ) by Def18;
thus the Comp of (DiscrCat A) . (o1,o2,o3) = {} by A5, Th24
.= (FuncComp ((Funcs (o1,o2)),(Funcs (o2,o3)))) | [:<^o2,o3^>,<^o1,o2^>:] by A6 ; ::_thesis: verum
end;
end;
end;
thus DiscrCat A is pseudo-discrete ::_thesis: ( DiscrCat A is with_units & DiscrCat A is associative )
proof
let i be object of (DiscrCat A); :: according to ALTCAT_1:def_19 ::_thesis: <^i,i^> is trivial
<^i,i^> = {(id i)} by Def20;
hence <^i,i^> is trivial ; ::_thesis: verum
end;
thus DiscrCat A is with_units ::_thesis: DiscrCat A is associative
proof
thus the Comp of (DiscrCat A) is with_left_units :: according to ALTCAT_1:def_16 ::_thesis: the Comp of (DiscrCat A) is with_right_units
proof
let j be Element of (DiscrCat A); :: according to ALTCAT_1:def_7 ::_thesis: ex e being set st
( e in the Arrows of (DiscrCat A) . (j,j) & ( for i being Element of the carrier of (DiscrCat A)
for f being set st f in the Arrows of (DiscrCat A) . (i,j) holds
( the Comp of (DiscrCat A) . (i,j,j)) . (e,f) = f ) )
reconsider j9 = j as object of (DiscrCat A) ;
take id j9 ; ::_thesis: ( id j9 in the Arrows of (DiscrCat A) . (j,j) & ( for i being Element of the carrier of (DiscrCat A)
for f being set st f in the Arrows of (DiscrCat A) . (i,j) holds
( the Comp of (DiscrCat A) . (i,j,j)) . ((id j9),f) = f ) )
the Arrows of (DiscrCat A) . (j,j) = <^j9,j9^>
.= {(id j9)} by Def20 ;
hence id j9 in the Arrows of (DiscrCat A) . (j,j) by TARSKI:def_1; ::_thesis: for i being Element of the carrier of (DiscrCat A)
for f being set st f in the Arrows of (DiscrCat A) . (i,j) holds
( the Comp of (DiscrCat A) . (i,j,j)) . ((id j9),f) = f
let i be Element of (DiscrCat A); ::_thesis: for f being set st f in the Arrows of (DiscrCat A) . (i,j) holds
( the Comp of (DiscrCat A) . (i,j,j)) . ((id j9),f) = f
let f be set ; ::_thesis: ( f in the Arrows of (DiscrCat A) . (i,j) implies ( the Comp of (DiscrCat A) . (i,j,j)) . ((id j9),f) = f )
assume A7: f in the Arrows of (DiscrCat A) . (i,j) ; ::_thesis: ( the Comp of (DiscrCat A) . (i,j,j)) . ((id j9),f) = f
reconsider i9 = i as object of (DiscrCat A) ;
A8: the Arrows of (DiscrCat A) . (i,j) = <^i9,j9^> ;
then A9: i9 = j9 by A7, Def18;
then f in {(id i9)} by A7, A8, Def20;
then A10: f = id i9 by TARSKI:def_1;
thus ( the Comp of (DiscrCat A) . (i,j,j)) . ((id j9),f) = (((id i9),(id i9)) :-> (id i9)) . ((id j9),f) by A9, Th25
.= f by A9, A10, Th10 ; ::_thesis: verum
end;
let j be Element of (DiscrCat A); :: according to ALTCAT_1:def_6 ::_thesis: ex e being set st
( e in the Arrows of (DiscrCat A) . (j,j) & ( for j being Element of the carrier of (DiscrCat A)
for f being set st f in the Arrows of (DiscrCat A) . (j,j) holds
( the Comp of (DiscrCat A) . (j,j,j)) . (f,e) = f ) )
reconsider j9 = j as object of (DiscrCat A) ;
take id j9 ; ::_thesis: ( id j9 in the Arrows of (DiscrCat A) . (j,j) & ( for j being Element of the carrier of (DiscrCat A)
for f being set st f in the Arrows of (DiscrCat A) . (j,j) holds
( the Comp of (DiscrCat A) . (j,j,j)) . (f,(id j9)) = f ) )
the Arrows of (DiscrCat A) . (j,j) = <^j9,j9^>
.= {(id j9)} by Def20 ;
hence id j9 in the Arrows of (DiscrCat A) . (j,j) by TARSKI:def_1; ::_thesis: for j being Element of the carrier of (DiscrCat A)
for f being set st f in the Arrows of (DiscrCat A) . (j,j) holds
( the Comp of (DiscrCat A) . (j,j,j)) . (f,(id j9)) = f
let i be Element of (DiscrCat A); ::_thesis: for f being set st f in the Arrows of (DiscrCat A) . (j,i) holds
( the Comp of (DiscrCat A) . (j,j,i)) . (f,(id j9)) = f
let f be set ; ::_thesis: ( f in the Arrows of (DiscrCat A) . (j,i) implies ( the Comp of (DiscrCat A) . (j,j,i)) . (f,(id j9)) = f )
assume A11: f in the Arrows of (DiscrCat A) . (j,i) ; ::_thesis: ( the Comp of (DiscrCat A) . (j,j,i)) . (f,(id j9)) = f
reconsider i9 = i as object of (DiscrCat A) ;
A12: the Arrows of (DiscrCat A) . (j,i) = <^j9,i9^> ;
then A13: i9 = j9 by A11, Def18;
then f in {(id i9)} by A11, A12, Def20;
then A14: f = id i9 by TARSKI:def_1;
thus ( the Comp of (DiscrCat A) . (j,j,i)) . (f,(id j9)) = (((id i9),(id i9)) :-> (id i9)) . (f,(id j9)) by A13, Th25
.= f by A13, A14, Th10 ; ::_thesis: verum
end;
thus DiscrCat A is associative ::_thesis: verum
proof
let i, j, k, l be Element of (DiscrCat A); :: according to ALTCAT_1:def_5,ALTCAT_1:def_15 ::_thesis: for f, g, h being set st f in the Arrows of (DiscrCat A) . (i,j) & g in the Arrows of (DiscrCat A) . (j,k) & h in the Arrows of (DiscrCat A) . (k,l) holds
( the Comp of (DiscrCat A) . (i,k,l)) . (h,(( the Comp of (DiscrCat A) . (i,j,k)) . (g,f))) = ( the Comp of (DiscrCat A) . (i,j,l)) . ((( the Comp of (DiscrCat A) . (j,k,l)) . (h,g)),f)
set G = the Arrows of (DiscrCat A);
set c = the Comp of (DiscrCat A);
reconsider i9 = i, j9 = j, k9 = k, l9 = l as object of (DiscrCat A) ;
let f, g, h be set ; ::_thesis: ( f in the Arrows of (DiscrCat A) . (i,j) & g in the Arrows of (DiscrCat A) . (j,k) & h in the Arrows of (DiscrCat A) . (k,l) implies ( the Comp of (DiscrCat A) . (i,k,l)) . (h,(( the Comp of (DiscrCat A) . (i,j,k)) . (g,f))) = ( the Comp of (DiscrCat A) . (i,j,l)) . ((( the Comp of (DiscrCat A) . (j,k,l)) . (h,g)),f) )
assume that
A15: f in the Arrows of (DiscrCat A) . (i,j) and
A16: g in the Arrows of (DiscrCat A) . (j,k) and
A17: h in the Arrows of (DiscrCat A) . (k,l) ; ::_thesis: ( the Comp of (DiscrCat A) . (i,k,l)) . (h,(( the Comp of (DiscrCat A) . (i,j,k)) . (g,f))) = ( the Comp of (DiscrCat A) . (i,j,l)) . ((( the Comp of (DiscrCat A) . (j,k,l)) . (h,g)),f)
f in <^i9,j9^> by A15;
then A18: i9 = j9 by Def18;
A19: <^i9,i9^> = {(id i9)} by Def20;
then A20: f = id i9 by A15, A18, TARSKI:def_1;
g in <^j9,k9^> by A16;
then A21: j9 = k9 by Def18;
then A22: g = id i9 by A16, A18, A19, TARSKI:def_1;
A23: the Comp of (DiscrCat A) . (i9,i9,i9) = ((id i9),(id i9)) :-> (id i9) by Th25;
h in <^k9,l9^> by A17;
then A24: k9 = l9 by Def18;
then h = id i9 by A17, A18, A21, A19, TARSKI:def_1;
hence ( the Comp of (DiscrCat A) . (i,k,l)) . (h,(( the Comp of (DiscrCat A) . (i,j,k)) . (g,f))) = ( the Comp of (DiscrCat A) . (i,j,l)) . ((( the Comp of (DiscrCat A) . (j,k,l)) . (h,g)),f) by A18, A21, A24, A20, A22, A23, Th10; ::_thesis: verum
end;
end;
end;