altcat_2.miz
begin
reserve e for
set;
theorem ::
ALTCAT_2:1
for X1,X2 be
set, a1,a2 be
set holds
[:(X1
--> a1), (X2
--> a2):]
= (
[:X1, X2:]
-->
[a1, a2])
proof
let X1,X2 be
set, a1,a2 be
set;
A2: (
dom (
[:X1, X2:]
-->
[a1, a2]))
=
[:(
dom (X1
--> a1)), (
dom (X2
--> a2)):];
now
let x,y be
object;
assume
A3: x
in (
dom (X1
--> a1)) & y
in (
dom (X2
--> a2));
then
[x, y]
in (
dom (
[:X1, X2:]
-->
[a1, a2])) by
ZFMISC_1: 87;
then
A4:
[x, y]
in
[:X1, X2:];
((X1
--> a1)
. x)
= a1 & ((X2
--> a2)
. y)
= a2 by
A3,
FUNCOP_1: 7;
hence ((
[:X1, X2:]
-->
[a1, a2])
. (x,y))
=
[((X1
--> a1)
. x), ((X2
--> a2)
. y)] by
A4,
FUNCOP_1: 7;
end;
hence thesis by
A2,
FUNCT_3:def 8;
end;
registration
let I be
set;
cluster (
EmptyMS I) ->
Function-yielding;
coherence ;
end
theorem ::
ALTCAT_2:2
for f,g be
Function holds (
~ (g
* f))
= (g
* (
~ f))
proof
let f,g be
Function;
A1:
now
let x be
object;
hereby
assume
A2: x
in (
dom (g
* (
~ f)));
then x
in (
dom (
~ f)) by
FUNCT_1: 11;
then
consider y1,z1 be
object such that
A3: x
=
[z1, y1] and
A4:
[y1, z1]
in (
dom f) by
FUNCT_4:def 2;
take y1, z1;
thus x
=
[z1, y1] by
A3;
((
~ f)
. (z1,y1))
in (
dom g) by
A2,
A3,
FUNCT_1: 11;
then (f
. (y1,z1))
in (
dom g) by
A4,
FUNCT_4:def 2;
hence
[y1, z1]
in (
dom (g
* f)) by
A4,
FUNCT_1: 11;
end;
given y,z be
object such that
A5: x
=
[z, y] and
A6:
[y, z]
in (
dom (g
* f));
A7:
[y, z]
in (
dom f) by
A6,
FUNCT_1: 11;
then
A8: x
in (
dom (
~ f)) by
A5,
FUNCT_4:def 2;
(f
. (y,z))
in (
dom g) by
A6,
FUNCT_1: 11;
then ((
~ f)
. (z,y))
in (
dom g) by
A7,
FUNCT_4:def 2;
hence x
in (
dom (g
* (
~ f))) by
A5,
A8,
FUNCT_1: 11;
end;
now
let y,z be
object;
assume
A9:
[y, z]
in (
dom (g
* f));
then
[y, z]
in (
dom f) by
FUNCT_1: 11;
then
A10:
[z, y]
in (
dom (
~ f)) by
FUNCT_4: 42;
hence ((g
* (
~ f))
. (z,y))
= (g
. ((
~ f)
. (z,y))) by
FUNCT_1: 13
.= (g
. (f
. (y,z))) by
A10,
FUNCT_4: 43
.= ((g
* f)
. (y,z)) by
A9,
FUNCT_1: 12;
end;
hence thesis by
A1,
FUNCT_4:def 2;
end;
theorem ::
ALTCAT_2:3
for f,g,h be
Function holds (
~ (f
*
[:g, h:]))
= ((
~ f)
*
[:h, g:])
proof
let f,g,h be
Function;
A1:
now
let x be
object;
hereby
assume
A2: x
in (
dom ((
~ f)
*
[:h, g:]));
then x
in (
dom
[:h, g:]) by
FUNCT_1: 11;
then x
in
[:(
dom h), (
dom g):] by
FUNCT_3:def 8;
then
consider y1,z1 be
object such that
A3: y1
in (
dom h) & z1
in (
dom g) and
A4: x
=
[y1, z1] by
ZFMISC_1: 84;
A5: (
[:h, g:]
. (y1,z1))
=
[(h
. y1), (g
. z1)] & (
[:g, h:]
. (z1,y1))
=
[(g
. z1), (h
. y1)] by
A3,
FUNCT_3:def 8;
(
[:h, g:]
. (y1,z1))
in (
dom (
~ f)) by
A2,
A4,
FUNCT_1: 11;
then
A6: (
[:g, h:]
. (z1,y1))
in (
dom f) by
A5,
FUNCT_4: 42;
take z1, y1;
thus x
=
[y1, z1] by
A4;
(
dom
[:g, h:])
=
[:(
dom g), (
dom h):] by
FUNCT_3:def 8;
then
[z1, y1]
in (
dom
[:g, h:]) by
A3,
ZFMISC_1: 87;
hence
[z1, y1]
in (
dom (f
*
[:g, h:])) by
A6,
FUNCT_1: 11;
end;
given y,z be
object such that
A7: x
=
[z, y] and
A8:
[y, z]
in (
dom (f
*
[:g, h:]));
A9: (
[:g, h:]
. (y,z))
in (
dom f) by
A8,
FUNCT_1: 11;
A10: (
dom
[:g, h:])
=
[:(
dom g), (
dom h):] by
FUNCT_3:def 8;
[y, z]
in (
dom
[:g, h:]) by
A8,
FUNCT_1: 11;
then
A11: y
in (
dom g) & z
in (
dom h) by
A10,
ZFMISC_1: 87;
then (
[:g, h:]
. (y,z))
=
[(g
. y), (h
. z)] & (
[:h, g:]
. (z,y))
=
[(h
. z), (g
. y)] by
FUNCT_3:def 8;
then
A12: (
[:h, g:]
. x)
in (
dom (
~ f)) by
A7,
A9,
FUNCT_4: 42;
(
dom
[:h, g:])
=
[:(
dom h), (
dom g):] by
FUNCT_3:def 8;
then x
in (
dom
[:h, g:]) by
A7,
A11,
ZFMISC_1: 87;
hence x
in (
dom ((
~ f)
*
[:h, g:])) by
A12,
FUNCT_1: 11;
end;
now
let y,z be
object;
assume
A13:
[y, z]
in (
dom (f
*
[:g, h:]));
then
[y, z]
in (
dom
[:g, h:]) by
FUNCT_1: 11;
then
[y, z]
in
[:(
dom g), (
dom h):] by
FUNCT_3:def 8;
then
A14: y
in (
dom g) & z
in (
dom h) by
ZFMISC_1: 87;
(
[:g, h:]
. (y,z))
in (
dom f) by
A13,
FUNCT_1: 11;
then
A15:
[(g
. y), (h
. z)]
in (
dom f) by
A14,
FUNCT_3:def 8;
[z, y]
in
[:(
dom h), (
dom g):] by
A14,
ZFMISC_1: 87;
then
[z, y]
in (
dom
[:h, g:]) by
FUNCT_3:def 8;
hence (((
~ f)
*
[:h, g:])
. (z,y))
= ((
~ f)
. (
[:h, g:]
. (z,y))) by
FUNCT_1: 13
.= ((
~ f)
. ((h
. z),(g
. y))) by
A14,
FUNCT_3:def 8
.= (f
. ((g
. y),(h
. z))) by
A15,
FUNCT_4:def 2
.= (f
. (
[:g, h:]
. (y,z))) by
A14,
FUNCT_3:def 8
.= ((f
*
[:g, h:])
. (y,z)) by
A13,
FUNCT_1: 12;
end;
hence thesis by
A1,
FUNCT_4:def 2;
end;
registration
let f be
Function-yielding
Function;
cluster (
~ f) ->
Function-yielding;
coherence
proof
let x be
object;
assume x
in (
dom (
~ f));
then
consider z,y be
object such that
A1: x
=
[y, z] and
A2:
[z, y]
in (
dom f) by
FUNCT_4:def 2;
(f
. (z,y))
= ((
~ f)
. (y,z)) by
A2,
FUNCT_4:def 2;
hence thesis by
A1;
end;
end
theorem ::
ALTCAT_2:4
for I be
set, A,B,C be
ManySortedSet of I st A
is_transformable_to B holds for F be
ManySortedFunction of A, B, G be
ManySortedFunction of B, C holds (G
** F) is
ManySortedFunction of A, C
proof
let I be
set, A,B,C be
ManySortedSet of I such that
A1: A
is_transformable_to B;
let F be
ManySortedFunction of A, B, G be
ManySortedFunction of B, C;
reconsider GF = (G
** F) as
ManySortedFunction of I by
MSSUBFAM: 15;
GF is
ManySortedFunction of A, C
proof
let i be
object;
assume
A2: i
in I;
then
reconsider Gi = (G
. i) as
Function of (B
. i), (C
. i) by
PBOOLE:def 15;
reconsider Fi = (F
. i) as
Function of (A
. i), (B
. i) by
A2,
PBOOLE:def 15;
i
in (
dom GF) by
A2,
PARTFUN1:def 2;
then
A3: ((G
** F)
. i)
= (Gi
* Fi) by
PBOOLE:def 19;
(B
. i)
=
{} implies (A
. i)
=
{} by
A1,
A2,
PZFMISC1:def 3;
hence thesis by
A3,
FUNCT_2: 13;
end;
hence thesis;
end;
registration
let I be
set;
let A be
ManySortedSet of
[:I, I:];
cluster (
~ A) ->
[:I, I:]
-defined;
coherence ;
end
registration
let I be
set;
let A be
ManySortedSet of
[:I, I:];
cluster (
~ A) ->
total;
coherence ;
end
theorem ::
ALTCAT_2:5
for I1 be
set, I2 be non
empty
set, f be
Function of I1, I2, B,C be
ManySortedSet of I2, G be
ManySortedFunction of B, C holds (G
* f) is
ManySortedFunction of (B
* f), (C
* f)
proof
let I1 be
set, I2 be non
empty
set, f be
Function of I1, I2, B,C be
ManySortedSet of I2, G be
ManySortedFunction of B, C;
let i be
object;
assume
A1: i
in I1;
then
A2: (G
. (f
. i)) is
Function of (B
. (f
. i)), (C
. (f
. i)) by
FUNCT_2: 5,
PBOOLE:def 15;
A3: i
in (
dom f) by
A1,
FUNCT_2:def 1;
then (B
. (f
. i))
= ((B
* f)
. i) & (C
. (f
. i))
= ((C
* f)
. i) by
FUNCT_1: 13;
hence thesis by
A3,
A2,
FUNCT_1: 13;
end;
definition
let I be
set, A,B be
ManySortedSet of
[:I, I:], F be
ManySortedFunction of A, B;
:: original:
~
redefine
func
~ F ->
ManySortedFunction of (
~ A), (
~ B) ;
coherence
proof
reconsider G = (
~ F) as
ManySortedSet of
[:I, I:];
G is
ManySortedFunction of (
~ A), (
~ B)
proof
let ii be
object;
assume ii
in
[:I, I:];
then
consider i1,i2 be
object such that
A1: i1
in I & i2
in I and
A2: ii
=
[i1, i2] by
ZFMISC_1: 84;
A3:
[i2, i1]
in
[:I, I:] by
A1,
ZFMISC_1: 87;
(
dom B)
=
[:I, I:] by
PARTFUN1:def 2;
then
A4: (B
. (i2,i1))
= ((
~ B)
. (i1,i2)) by
A3,
FUNCT_4:def 2;
(
dom A)
=
[:I, I:] by
PARTFUN1:def 2;
then
A5: (A
. (i2,i1))
= ((
~ A)
. (i1,i2)) by
A3,
FUNCT_4:def 2;
(
dom F)
=
[:I, I:] by
PARTFUN1:def 2;
then (F
. (i2,i1))
= (G
. (i1,i2)) by
A3,
FUNCT_4:def 2;
hence thesis by
A2,
A3,
A5,
A4,
PBOOLE:def 15;
end;
hence thesis;
end;
end
theorem ::
ALTCAT_2:6
for I1,I2 be non
empty
set, M be
ManySortedSet of
[:I1, I2:], o1 be
Element of I1, o2 be
Element of I2 holds ((
~ M)
. (o2,o1))
= (M
. (o1,o2))
proof
let I1,I2 be non
empty
set, M be
ManySortedSet of
[:I1, I2:], o1 be
Element of I1, o2 be
Element of I2;
[o1, o2]
in
[:I1, I2:];
then
[o1, o2]
in (
dom M) by
PARTFUN1:def 2;
hence thesis by
FUNCT_4:def 2;
end;
registration
let I1 be
set, f,g be
ManySortedFunction of I1;
cluster (g
** f) -> I1
-defined;
coherence
proof
A1: (
dom f)
= I1 & (
dom g)
= I1 by
PARTFUN1:def 2;
(
dom (g
** f))
= ((
dom g)
/\ (
dom f)) by
PBOOLE:def 19
.= I1 by
A1;
hence thesis;
end;
end
registration
let I1 be
set, f,g be
ManySortedFunction of I1;
cluster (g
** f) ->
total;
coherence
proof
A1: (
dom f)
= I1 & (
dom g)
= I1 by
PARTFUN1:def 2;
(
dom (g
** f))
= ((
dom g)
/\ (
dom f)) by
PBOOLE:def 19
.= I1 by
A1;
hence thesis by
PARTFUN1:def 2;
end;
end
begin
definition
let f,g be
Function;
::
ALTCAT_2:def1
pred f
cc= g means (
dom f)
c= (
dom g) & for i be
set st i
in (
dom f) holds (f
. i)
c= (g
. i);
reflexivity ;
end
definition
let I,J be
set, A be
ManySortedSet of I, B be
ManySortedSet of J;
:: original:
cc=
redefine
::
ALTCAT_2:def2
pred A
cc= B means I
c= J & for i be
set st i
in I holds (A
. i)
c= (B
. i);
compatibility
proof
A1: (
dom A)
= I by
PARTFUN1:def 2;
(
dom B)
= J by
PARTFUN1:def 2;
hence A
cc= B implies I
c= J & for i be
set st i
in I holds (A
. i)
c= (B
. i) by
A1;
assume that
A2: I
c= J and
A3: for i be
set st i
in I holds (A
. i)
c= (B
. i);
thus (
dom A)
c= (
dom B) by
A1,
A2,
PARTFUN1:def 2;
let i be
set;
assume i
in (
dom A);
hence thesis by
A1,
A3;
end;
end
theorem ::
ALTCAT_2:7
Th7: for I,J be
set, A be
ManySortedSet of I, B be
ManySortedSet of J holds A
cc= B & B
cc= A implies A
= B
proof
let I,J be
set, A be
ManySortedSet of I, B be
ManySortedSet of J;
assume that
A1: A
cc= B and
A2: B
cc= A;
A3: I
c= J by
A1;
J
c= I by
A2;
then I
= J by
A3,
XBOOLE_0:def 10;
then
reconsider B9 = B as
ManySortedSet of I;
now
let i be
object;
assume i
in I;
then (A
. i)
c= (B
. i) & (B
. i)
c= (A
. i) by
A1,
A2;
hence (A
. i)
= (B9
. i) by
XBOOLE_0:def 10;
end;
hence thesis by
PBOOLE: 3;
end;
theorem ::
ALTCAT_2:8
Th8: for I,J,K be
set, A be
ManySortedSet of I, B be
ManySortedSet of J, C be
ManySortedSet of K holds A
cc= B & B
cc= C implies A
cc= C
proof
let I,J,K be
set, A be
ManySortedSet of I, B be
ManySortedSet of J, C be
ManySortedSet of K;
assume that
A1: A
cc= B and
A2: B
cc= C;
A3: I
c= J by
A1;
J
c= K by
A2;
hence I
c= K by
A3;
let i be
set;
assume
A4: i
in I;
then
A5: (A
. i)
c= (B
. i) by
A1;
(B
. i)
c= (C
. i) by
A2,
A3,
A4;
hence thesis by
A5;
end;
theorem ::
ALTCAT_2:9
for I be
set, A be
ManySortedSet of I, B be
ManySortedSet of I holds A
cc= B iff A
c= B;
begin
scheme ::
ALTCAT_2:sch1
OnSingletons { X() -> non
empty
set , F(
set) ->
set , P[
set] } :
{
[o, F(o)] where o be
Element of X() : P[o] } is
Function;
set f = {
[o, F(o)] where o be
Element of X() : P[o] };
A1: f is
Function-like
proof
let x,y1,y2 be
object;
assume
[x, y1]
in f;
then
consider o1 be
Element of X() such that
A2:
[x, y1]
=
[o1, F(o1)] and P[o1];
A3: o1
= x by
A2,
XTUPLE_0: 1;
assume
[x, y2]
in f;
then
consider o2 be
Element of X() such that
A4:
[x, y2]
=
[o2, F(o2)] and P[o2];
o2
= x by
A4,
XTUPLE_0: 1;
hence thesis by
A2,
A4,
A3,
XTUPLE_0: 1;
end;
f is
Relation-like
proof
let x be
object;
assume x
in f;
then
consider o be
Element of X() such that
A5: x
=
[o, F(o)] and P[o];
take o, F(o);
thus thesis by
A5;
end;
hence thesis by
A1;
end;
scheme ::
ALTCAT_2:sch2
DomOnSingletons { X() -> non
empty
set , f() ->
Function , F(
set) ->
set , P[
set] } :
(
dom f())
= { o where o be
Element of X() : P[o] }
provided
A1: f()
= {
[o, F(o)] where o be
Element of X() : P[o] };
set A = { o where o be
Element of X() : P[o] };
now
let x be
object;
hereby
assume x
in A;
then
consider o be
Element of X() such that
A2: x
= o & P[o];
reconsider y = F(o) as
object;
take y;
thus
[x, y]
in f() by
A1,
A2;
end;
given y be
object such that
A3:
[x, y]
in f();
consider o be
Element of X() such that
A4:
[x, y]
=
[o, F(o)] and
A5: P[o] by
A1,
A3;
x
= o by
A4,
XTUPLE_0: 1;
hence x
in A by
A5;
end;
hence thesis by
XTUPLE_0:def 12;
end;
scheme ::
ALTCAT_2:sch3
ValOnSingletons { X() -> non
empty
set , f() ->
Function , x() ->
Element of X() , F(
set) ->
set , P[
set] } :
(f()
. x())
= F(x)
provided
A1: f()
= {
[o, F(o)] where o be
Element of X() : P[o] }
and
A2: P[x()];
A3: f()
= {
[o, F(o)] where o be
Element of X() : P[o] } by
A1;
(
dom f())
= { o where o be
Element of X() : P[o] } from
DomOnSingletons(
A3);
then
A4: x()
in (
dom f()) by
A2;
[x(), F(x)]
in {
[o, F(o)] where o be
Element of X() : P[o] } by
A2;
hence thesis by
A1,
A4,
FUNCT_1:def 2;
end;
begin
theorem ::
ALTCAT_2:10
Th10: for C be
Category, i,j,k be
Object of C holds
[:(
Hom (j,k)), (
Hom (i,j)):]
c= (
dom the
Comp of C)
proof
let C be
Category, i,j,k be
Object of C;
let e be
object;
assume
A1: e
in
[:(
Hom (j,k)), (
Hom (i,j)):];
then
reconsider y = (e
`1 ), x = (e
`2 ) as
Morphism of C by
MCART_1: 10;
A2: (e
`2 )
in (
Hom (i,j)) by
A1,
MCART_1: 10;
A3: e
=
[y, x] by
A1,
MCART_1: 21;
(e
`1 )
in (
Hom (j,k)) by
A1,
MCART_1: 10;
then (
dom y)
= j by
CAT_1: 1
.= (
cod x) by
A2,
CAT_1: 1;
hence thesis by
A3,
CAT_1: 15;
end;
theorem ::
ALTCAT_2:11
Th11: for C be
Category, i,j,k be
Object of C holds (the
Comp of C
.:
[:(
Hom (j,k)), (
Hom (i,j)):])
c= (
Hom (i,k))
proof
let C be
Category, i,j,k be
Object of C;
let e be
object;
assume e
in (the
Comp of C
.:
[:(
Hom (j,k)), (
Hom (i,j)):]);
then
consider x be
object such that
A1: x
in (
dom the
Comp of C) and
A2: x
in
[:(
Hom (j,k)), (
Hom (i,j)):] and
A3: e
= (the
Comp of C
. x) by
FUNCT_1:def 6;
reconsider y = (x
`1 ), z = (x
`2 ) as
Morphism of C by
A2,
MCART_1: 10;
A4: x
=
[y, z] & e
= (the
Comp of C
. (y,z)) by
A2,
A3,
MCART_1: 21;
A5: (x
`2 )
in (
Hom (i,j)) by
A2,
MCART_1: 10;
then
A6: z is
Morphism of i, j by
CAT_1:def 5;
A7: (x
`1 )
in (
Hom (j,k)) by
A2,
MCART_1: 10;
then y is
Morphism of j, k by
CAT_1:def 5;
then (y
(*) z)
in (
Hom (i,k)) by
A7,
A5,
A6,
CAT_1: 23;
hence thesis by
A1,
A4,
CAT_1:def 1;
end;
definition
let C be non
void non
empty
CatStr;
::
ALTCAT_2:def3
func
the_hom_sets_of C ->
ManySortedSet of
[:the
carrier of C, the
carrier of C:] means
:
Def3: for i,j be
Object of C holds (it
. (i,j))
= (
Hom (i,j));
existence
proof
deffunc
H(
Object of C,
Object of C) = (
Hom ($1,$2));
thus ex M be
ManySortedSet of
[:the
carrier of C, the
carrier of C:] st for i,j be
Object of C holds (M
. (i,j))
=
H(i,j) from
ALTCAT_1:sch 2;
end;
uniqueness
proof
let M1,M2 be
ManySortedSet of
[:the
carrier of C, the
carrier of C:] such that
A1: for i,j be
Object of C holds (M1
. (i,j))
= (
Hom (i,j)) and
A2: for i,j be
Object of C holds (M2
. (i,j))
= (
Hom (i,j));
now
let i,j be
Object of C;
thus (M1
. (i,j))
= (
Hom (i,j)) by
A1
.= (M2
. (i,j)) by
A2;
end;
hence thesis by
ALTCAT_1: 7;
end;
end
theorem ::
ALTCAT_2:12
Th12: for C be
Category, i be
Object of C holds (
id i)
in ((
the_hom_sets_of C)
. (i,i))
proof
let C be
Category, i be
Object of C;
(
id i)
in (
Hom (i,i)) by
CAT_1: 27;
hence thesis by
Def3;
end;
definition
let C be
Category;
::
ALTCAT_2:def4
func
the_comps_of C ->
BinComp of (
the_hom_sets_of C) means
:
Def4: for i,j,k be
Object of C holds (it
. (i,j,k))
= (the
Comp of C
|
[:((
the_hom_sets_of C)
. (j,k)), ((
the_hom_sets_of C)
. (i,j)):] qua
set);
existence
proof
deffunc
F(
object) = (the
Comp of C
|
[:((
the_hom_sets_of C)
. ((($1
`1 )
`2 ),($1
`2 ))), ((
the_hom_sets_of C)
. ((($1
`1 )
`1 ),(($1
`1 )
`2 ))):] qua
set);
set Ob3 =
[:the
carrier of C, the
carrier of C, the
carrier of C:], G = (
the_hom_sets_of C);
consider o be
Function such that
A1: (
dom o)
= Ob3 and
A2: for e be
object st e
in Ob3 holds (o
. e)
=
F(e) from
FUNCT_1:sch 3;
reconsider o as
ManySortedSet of Ob3 by
A1,
PARTFUN1:def 2,
RELAT_1:def 18;
now
let e be
object;
assume e
in (
dom o);
then (o
. e)
= (the
Comp of C
|
[:((
the_hom_sets_of C)
. (((e
`1 )
`2 ),(e
`2 ))), ((
the_hom_sets_of C)
. (((e
`1 )
`1 ),((e
`1 )
`2 ))):] qua
set) by
A1,
A2;
hence (o
. e) is
Function;
end;
then
reconsider o as
ManySortedFunction of Ob3 by
FUNCOP_1:def 6;
now
let e be
object;
reconsider f = (o
. e) as
Function;
assume
A3: e
in Ob3;
then
consider i,j,k be
Object of C such that
A4: e
=
[i, j, k] by
DOMAIN_1: 3;
reconsider e9 = e as
Element of Ob3 by
A3;
A5: ((
[i, j, k] qua
set
`1 )
`2 )
= (e9
`2_3 ) by
A4
.= j by
A4,
MCART_1:def 6;
A6: (
[i, j, k] qua
set
`2 )
= (e9
`3_3 ) by
A4
.= k by
A4,
MCART_1:def 7;
((
[i, j, k] qua
set
`1 )
`1 )
= (e9
`1_3 ) by
A4
.= i by
A4,
MCART_1:def 5;
then
A7: f
= (the
Comp of C
|
[:(G
. (j,k)), (G
. (i,j)):] qua
set) by
A2,
A4,
A5,
A6;
A8: (G
. (i,j))
= (
Hom (i,j)) & (G
. (j,k))
= (
Hom (j,k)) by
Def3;
A9: (
{|G|}
. e)
= (
{|G|}
. (i,j,k)) by
A4,
MULTOP_1:def 1
.= (G
. (i,k)) by
ALTCAT_1:def 3
.= (
Hom (i,k)) by
Def3;
A10: (
{|G, G|}
. e)
= (
{|G, G|}
. (i,j,k)) by
A4,
MULTOP_1:def 1
.=
[:(
Hom (j,k)), (
Hom (i,j)):] by
A8,
ALTCAT_1:def 4;
(the
Comp of C
.:
[:(
Hom (j,k)), (
Hom (i,j)):])
c= (
Hom (i,k)) by
Th11;
then
A11: (
rng f)
c= (
{|G|}
. e) by
A8,
A7,
A9,
RELAT_1: 115;
[:(
Hom (j,k)), (
Hom (i,j)):]
c= (
dom the
Comp of C) by
Th10;
then (
dom f)
= (
{|G, G|}
. e) by
A8,
A7,
A10,
RELAT_1: 62;
hence (o
. e) is
Function of (
{|G, G|}
. e), (
{|G|}
. e) by
A11,
FUNCT_2: 2;
end;
then
reconsider o as
BinComp of G by
PBOOLE:def 15;
take o;
let i,j,k be
Object of C;
reconsider e =
[i, j, k] as
Element of Ob3;
A12: ((
[i, j, k] qua
set
`1 )
`1 )
= (e
`1_3 )
.= i by
MCART_1:def 5;
A13: ((
[i, j, k] qua
set
`1 )
`2 )
= (e
`2_3 )
.= j by
MCART_1:def 6;
A14: (
[i, j, k] qua
set
`2 )
= (e
`3_3 )
.= k by
MCART_1:def 7;
thus (o
. (i,j,k))
= (o
.
[i, j, k]) by
MULTOP_1:def 1
.= (the
Comp of C
|
[:((
the_hom_sets_of C)
. (j,k)), ((
the_hom_sets_of C)
. (i,j)):] qua
set) by
A2,
A12,
A13,
A14;
end;
uniqueness
proof
let o1,o2 be
BinComp of (
the_hom_sets_of C) such that
A15: for i,j,k be
Object of C holds (o1
. (i,j,k))
= (the
Comp of C
|
[:((
the_hom_sets_of C)
. (j,k)), ((
the_hom_sets_of C)
. (i,j)):] qua
set) and
A16: for i,j,k be
Object of C holds (o2
. (i,j,k))
= (the
Comp of C
|
[:((
the_hom_sets_of C)
. (j,k)), ((
the_hom_sets_of C)
. (i,j)):] qua
set);
now
let a be
object;
assume a
in
[:the
carrier of C, the
carrier of C, the
carrier of C:];
then
consider i,j,k be
Object of C such that
A17: a
=
[i, j, k] by
DOMAIN_1: 3;
thus (o1
. a)
= (o1
. (i,j,k)) by
A17,
MULTOP_1:def 1
.= (the
Comp of C
|
[:((
the_hom_sets_of C)
. (j,k)), ((
the_hom_sets_of C)
. (i,j)):] qua
set) by
A15
.= (o2
. (i,j,k)) by
A16
.= (o2
. a) by
A17,
MULTOP_1:def 1;
end;
hence o1
= o2;
end;
end
theorem ::
ALTCAT_2:13
Th13: for C be
Category, i,j,k be
Object of C st (
Hom (i,j))
<>
{} & (
Hom (j,k))
<>
{} holds for f be
Morphism of i, j, g be
Morphism of j, k holds (((
the_comps_of C)
. (i,j,k))
. (g,f))
= (g
* f)
proof
let C be
Category, i,j,k be
Object of C such that
A1: (
Hom (i,j))
<>
{} and
A2: (
Hom (j,k))
<>
{} ;
let f be
Morphism of i, j, g be
Morphism of j, k;
A3: g
in (
Hom (j,k)) by
A2,
CAT_1:def 5;
then
A4: g
in ((
the_hom_sets_of C)
. (j,k)) by
Def3;
A5: f
in (
Hom (i,j)) by
A1,
CAT_1:def 5;
then f
in ((
the_hom_sets_of C)
. (i,j)) by
Def3;
then
A6:
[g, f]
in
[:((
the_hom_sets_of C)
. (j,k)), ((
the_hom_sets_of C)
. (i,j)):] by
A4,
ZFMISC_1: 87;
A7: (
dom g)
= j by
A3,
CAT_1: 1
.= (
cod f) by
A5,
CAT_1: 1;
thus (((
the_comps_of C)
. (i,j,k))
. (g,f))
= ((the
Comp of C
|
[:((
the_hom_sets_of C)
. (j,k)), ((
the_hom_sets_of C)
. (i,j)):] qua
set)
.
[g, f]) by
Def4
.= (the
Comp of C
. (g,f)) by
A6,
FUNCT_1: 49
.= (g
(*) f qua
Morphism of C) by
A7,
CAT_1: 16
.= (g
* f) by
A1,
A2,
CAT_1:def 13;
end;
theorem ::
ALTCAT_2:14
Th14: for C be
Category holds (
the_comps_of C) is
associative
proof
let C be
Category;
let i,j,k,l be
Object of C;
let f,g,h be
set;
assume f
in ((
the_hom_sets_of C)
. (i,j));
then
A1: f
in (
Hom (i,j)) by
Def3;
then
reconsider f9 = f as
Morphism of i, j by
CAT_1:def 5;
assume g
in ((
the_hom_sets_of C)
. (j,k));
then
A2: g
in (
Hom (j,k)) by
Def3;
then
reconsider g9 = g as
Morphism of j, k by
CAT_1:def 5;
assume h
in ((
the_hom_sets_of C)
. (k,l));
then
A3: h
in (
Hom (k,l)) by
Def3;
then
reconsider h9 = h as
Morphism of k, l by
CAT_1:def 5;
A4: (
Hom (j,l))
<>
{} & (((
the_comps_of C)
. (j,k,l))
. (h,g))
= (h9
* g9) by
A2,
A3,
Th13,
CAT_1: 24;
(
Hom (i,k))
<>
{} & (((
the_comps_of C)
. (i,j,k))
. (g,f))
= (g9
* f9) by
A1,
A2,
Th13,
CAT_1: 24;
hence (((
the_comps_of C)
. (i,k,l))
. (h,(((
the_comps_of C)
. (i,j,k))
. (g,f))))
= (h9
* (g9
* f9)) by
A3,
Th13
.= ((h9
* g9)
* f9) by
A1,
A2,
A3,
CAT_1: 25
.= (((
the_comps_of C)
. (i,j,l))
. ((((
the_comps_of C)
. (j,k,l))
. (h,g)),f)) by
A1,
A4,
Th13;
end;
theorem ::
ALTCAT_2:15
Th15: for C be
Category holds (
the_comps_of C) is
with_left_units
with_right_units
proof
let C be
Category;
thus (
the_comps_of C) is
with_left_units
proof
let i be
Object of C;
take (
id i);
thus (
id i)
in ((
the_hom_sets_of C)
. (i,i)) by
Th12;
let j be
Object of C, f be
set;
assume f
in ((
the_hom_sets_of C)
. (j,i));
then
A1: f
in (
Hom (j,i)) by
Def3;
then
reconsider m = f as
Morphism of j, i by
CAT_1:def 5;
(
Hom (i,i))
<>
{} ;
hence (((
the_comps_of C)
. (j,i,i))
. ((
id i),f))
= ((
id i)
* m) by
A1,
Th13
.= f by
A1,
CAT_1: 28;
end;
let j be
Object of C;
take (
id j);
thus (
id j)
in ((
the_hom_sets_of C)
. (j,j)) by
Th12;
let i be
Object of C, f be
set;
assume f
in ((
the_hom_sets_of C)
. (j,i));
then
A2: f
in (
Hom (j,i)) by
Def3;
then
reconsider m = f as
Morphism of j, i by
CAT_1:def 5;
(
Hom (j,j))
<>
{} ;
hence (((
the_comps_of C)
. (j,j,i))
. (f,(
id j)))
= (m
* (
id j)) by
A2,
Th13
.= f by
A2,
CAT_1: 29;
end;
begin
definition
let C be
Category;
::
ALTCAT_2:def5
func
Alter C ->
strict non
empty
AltCatStr equals
AltCatStr (# the
carrier of C, (
the_hom_sets_of C), (
the_comps_of C) #);
correctness ;
end
theorem ::
ALTCAT_2:16
Th16: for C be
Category holds (
Alter C) is
associative
proof
let C be
Category;
thus the
Comp of (
Alter C) is
associative by
Th14;
end;
theorem ::
ALTCAT_2:17
Th17: for C be
Category holds (
Alter C) is
with_units
proof
let C be
Category;
thus the
Comp of (
Alter C) is
with_left_units
with_right_units by
Th15;
end;
theorem ::
ALTCAT_2:18
Th18: for C be
Category holds (
Alter C) is
transitive
proof
let C be
Category;
let o1,o2,o3 be
Object of (
Alter C) such that
A1:
<^o1, o2^>
<>
{} &
<^o2, o3^>
<>
{} ;
reconsider x1 = o1, x2 = o2, x3 = o3 as
Object of C;
A2:
<^o1, o3^>
= (
Hom (x1,x3)) by
Def3;
<^o1, o2^>
= (
Hom (x1,x2)) &
<^o2, o3^>
= (
Hom (x2,x3)) by
Def3;
hence thesis by
A1,
A2,
CAT_1: 24;
end;
registration
let C be
Category;
cluster (
Alter C) ->
transitive
associative
with_units;
coherence by
Th16,
Th17,
Th18;
end
begin
registration
cluster non
empty
strict for
AltGraph;
existence
proof
set M = the
ManySortedSet of
[:
{
{} },
{
{} }:];
take A =
AltGraph (#
{
{} }, M #);
thus the
carrier of A is non
empty;
thus thesis;
end;
end
definition
let C be
AltGraph;
::
ALTCAT_2:def6
attr C is
reflexive means for x be
set st x
in the
carrier of C holds (the
Arrows of C
. (x,x))
<>
{} ;
end
definition
let C be non
empty
AltGraph;
:: original:
reflexive
redefine
::
ALTCAT_2:def7
attr C is
reflexive means for o be
Object of C holds
<^o, o^>
<>
{} ;
compatibility
proof
thus C is
reflexive implies for o be
Object of C holds
<^o, o^>
<>
{} ;
assume
A1: for o be
Object of C holds
<^o, o^>
<>
{} ;
let x be
set;
assume x
in the
carrier of C;
then
reconsider o = x as
Object of C;
(the
Arrows of C
. (x,x))
=
<^o, o^>;
hence thesis by
A1;
end;
end
definition
let C be non
empty
transitive
AltCatStr;
:: original:
associative
redefine
::
ALTCAT_2:def8
attr C is
associative means
:
Def8: for o1,o2,o3,o4 be
Object of C holds for f be
Morphism of o1, o2, g be
Morphism of o2, o3, h be
Morphism of o3, o4 st
<^o1, o2^>
<>
{} &
<^o2, o3^>
<>
{} &
<^o3, o4^>
<>
{} holds ((h
* g)
* f)
= (h
* (g
* f));
compatibility
proof
thus C is
associative implies for o1,o2,o3,o4 be
Object of C holds for f be
Morphism of o1, o2, g be
Morphism of o2, o3, h be
Morphism of o3, o4 st
<^o1, o2^>
<>
{} &
<^o2, o3^>
<>
{} &
<^o3, o4^>
<>
{} holds ((h
* g)
* f)
= (h
* (g
* f)) by
ALTCAT_1: 21;
assume
A1: for o1,o2,o3,o4 be
Object of C holds for f be
Morphism of o1, o2, g be
Morphism of o2, o3, h be
Morphism of o3, o4 st
<^o1, o2^>
<>
{} &
<^o2, o3^>
<>
{} &
<^o3, o4^>
<>
{} holds ((h
* g)
* f)
= (h
* (g
* f));
let i,j,k,l be
Element of C;
reconsider o1 = i, o2 = j, o3 = k, o4 = l as
Object of C;
let f,g,h be
set;
assume
A2: f
in (the
Arrows of C
. (i,j));
then
reconsider ff = f as
Morphism of o1, o2;
assume
A3: g
in (the
Arrows of C
. (j,k));
then
A4: g
in
<^o2, o3^>;
f
in
<^o1, o2^> by
A2;
then
A5:
<^o1, o3^>
<>
{} by
A4,
ALTCAT_1:def 2;
reconsider gg = g as
Morphism of o2, o3 by
A3;
assume
A6: h
in (the
Arrows of C
. (k,l));
then
reconsider hh = h as
Morphism of o3, o4;
A7: ((the
Comp of C
. (j,k,l))
. (h,g))
= (hh
* gg) by
A3,
A6,
ALTCAT_1:def 8;
h
in
<^o3, o4^> by
A6;
then
A8:
<^o2, o4^>
<>
{} by
A4,
ALTCAT_1:def 2;
((the
Comp of C
. (i,j,k))
. (g,f))
= (gg
* ff) by
A2,
A3,
ALTCAT_1:def 8;
hence ((the
Comp of C
. (i,k,l))
. (h,((the
Comp of C
. (i,j,k))
. (g,f))))
= (hh
* (gg
* ff)) by
A6,
A5,
ALTCAT_1:def 8
.= ((hh
* gg)
* ff) by
A1,
A2,
A3,
A6
.= ((the
Comp of C
. (i,j,l))
. (((the
Comp of C
. (j,k,l))
. (h,g)),f)) by
A2,
A8,
A7,
ALTCAT_1:def 8;
end;
end
definition
let C be non
empty
AltCatStr;
:: original:
with_units
redefine
::
ALTCAT_2:def9
attr C is
with_units means for o be
Object of C holds
<^o, o^>
<>
{} & ex i be
Morphism of o, o st for o9 be
Object of C, m9 be
Morphism of o9, o, m99 be
Morphism of o, o9 holds (
<^o9, o^>
<>
{} implies (i
* m9)
= m9) & (
<^o, o9^>
<>
{} implies (m99
* i)
= m99);
compatibility
proof
hereby
assume
A1: C is
with_units;
then
reconsider C9 = C as
with_units non
empty
AltCatStr;
let o be
Object of C;
thus
<^o, o^>
<>
{} by
A1,
ALTCAT_1: 18;
reconsider p = o as
Object of C9;
reconsider i = (
idm p) as
Morphism of o, o;
take i;
let o9 be
Object of C, m9 be
Morphism of o9, o, m99 be
Morphism of o, o9;
thus
<^o9, o^>
<>
{} implies (i
* m9)
= m9 by
ALTCAT_1: 20;
thus
<^o, o9^>
<>
{} implies (m99
* i)
= m99 by
ALTCAT_1:def 17;
end;
assume
A2: for o be
Object of C holds
<^o, o^>
<>
{} & ex i be
Morphism of o, o st for o9 be
Object of C, m9 be
Morphism of o9, o, m99 be
Morphism of o, o9 holds (
<^o9, o^>
<>
{} implies (i
* m9)
= m9) & (
<^o, o9^>
<>
{} implies (m99
* i)
= m99);
hereby
let j be
Element of C;
reconsider o = j as
Object of C;
consider m be
Morphism of o, o such that
A3: for o9 be
Object of C, m9 be
Morphism of o9, o, m99 be
Morphism of o, o9 holds (
<^o9, o^>
<>
{} implies (m
* m9)
= m9) & (
<^o, o9^>
<>
{} implies (m99
* m)
= m99) by
A2;
reconsider e = m as
set;
take e;
A4:
<^o, o^>
<>
{} by
A2;
hence e
in (the
Arrows of C
. (j,j));
let i be
Element of C, f be
set such that
A5: f
in (the
Arrows of C
. (i,j));
reconsider o9 = i as
Object of C;
reconsider m9 = f as
Morphism of o9, o by
A5;
thus ((the
Comp of C
. (i,j,j))
. (e,f))
= (m
* m9) by
A4,
A5,
ALTCAT_1:def 8
.= f by
A3,
A5;
end;
let i be
Element of C;
reconsider o = i as
Object of C;
consider m be
Morphism of o, o such that
A6: for o9 be
Object of C, m9 be
Morphism of o9, o, m99 be
Morphism of o, o9 holds (
<^o9, o^>
<>
{} implies (m
* m9)
= m9) & (
<^o, o9^>
<>
{} implies (m99
* m)
= m99) by
A2;
take e = m;
A7:
<^o, o^>
<>
{} by
A2;
hence e
in (the
Arrows of C
. (i,i));
let j be
Element of C, f be
set such that
A8: f
in (the
Arrows of C
. (i,j));
reconsider o9 = j as
Object of C;
reconsider m9 = f as
Morphism of o, o9 by
A8;
thus ((the
Comp of C
. (i,i,j))
. (f,e))
= (m9
* m) by
A7,
A8,
ALTCAT_1:def 8
.= f by
A6,
A8;
end;
end
registration
cluster
with_units ->
reflexive for non
empty
AltCatStr;
coherence ;
end
registration
cluster non
empty
reflexive for
AltGraph;
existence
proof
set C = the
with_units non
empty
AltCatStr;
take C;
thus thesis;
end;
end
registration
cluster non
empty
reflexive for
AltCatStr;
existence
proof
set C = the
category;
take C;
thus thesis;
end;
end
begin
Lm1: for E1,E2 be
strict
AltCatStr st the
carrier of E1 is
empty & the
carrier of E2 is
empty holds E1
= E2
proof
let E1,E2 be
strict
AltCatStr;
set C1 = the
carrier of E1, C2 = the
carrier of E2;
assume that
A1: C1 is
empty and
A2: C2 is
empty;
A3:
[:C2, C2, C2:]
=
{} by
A2,
MCART_1: 31;
[:C1, C1, C1:]
=
{} by
A1,
MCART_1: 31;
then
A4: the
Comp of E1
=
{}
.= the
Comp of E2 by
A3;
A5:
[:C2, C2:]
=
{} by
A2,
ZFMISC_1: 90;
[:C1, C1:]
=
{} by
A1,
ZFMISC_1: 90;
then the
Arrows of E1
=
{}
.= the
Arrows of E2 by
A5;
hence thesis by
A1,
A2,
A4;
end;
definition
::
ALTCAT_2:def10
func
the_empty_category ->
strict
AltCatStr means
:
Def10: the
carrier of it is
empty;
existence
proof
reconsider a =
{} as
set;
set m = the
ManySortedSet of
[:a, a:];
set c = the
BinComp of m;
take
AltCatStr (# a, m, c #);
thus thesis;
end;
uniqueness by
Lm1;
end
registration
cluster
the_empty_category ->
empty;
coherence by
Def10;
end
registration
cluster
empty
strict for
AltCatStr;
existence
proof
take
the_empty_category ;
thus thesis;
end;
end
theorem ::
ALTCAT_2:19
for E be
empty
strict
AltCatStr holds E
=
the_empty_category by
Lm1;
begin
definition
let C be
AltCatStr;
::
ALTCAT_2:def11
mode
SubCatStr of C ->
AltCatStr means
:
Def11: the
carrier of it
c= the
carrier of C & the
Arrows of it
cc= the
Arrows of C & the
Comp of it
cc= the
Comp of C;
existence ;
end
reserve C,C1,C2,C3 for
AltCatStr;
theorem ::
ALTCAT_2:20
Th20: C is
SubCatStr of C
proof
thus the
carrier of C
c= the
carrier of C;
thus thesis;
end;
theorem ::
ALTCAT_2:21
C1 is
SubCatStr of C2 & C2 is
SubCatStr of C3 implies C1 is
SubCatStr of C3
proof
assume the
carrier of C1
c= the
carrier of C2 & the
Arrows of C1
cc= the
Arrows of C2 & the
Comp of C1
cc= the
Comp of C2 & the
carrier of C2
c= the
carrier of C3 & the
Arrows of C2
cc= the
Arrows of C3 & the
Comp of C2
cc= the
Comp of C3;
hence the
carrier of C1
c= the
carrier of C3 & the
Arrows of C1
cc= the
Arrows of C3 & the
Comp of C1
cc= the
Comp of C3 by
Th8;
end;
theorem ::
ALTCAT_2:22
Th22: for C1,C2 be
AltCatStr st C1 is
SubCatStr of C2 & C2 is
SubCatStr of C1 holds the AltCatStr of C1
= the AltCatStr of C2
proof
let C1,C2 be
AltCatStr;
assume that
A1: the
carrier of C1
c= the
carrier of C2 & the
Arrows of C1
cc= the
Arrows of C2 and
A2: the
Comp of C1
cc= the
Comp of C2 and
A3: the
carrier of C2
c= the
carrier of C1 & the
Arrows of C2
cc= the
Arrows of C1 and
A4: the
Comp of C2
cc= the
Comp of C1;
the
carrier of C1
= the
carrier of C2 & the
Arrows of C1
= the
Arrows of C2 by
A1,
A3,
Th7,
XBOOLE_0:def 10;
hence thesis by
A2,
A4,
Th7;
end;
registration
let C be
AltCatStr;
cluster
strict for
SubCatStr of C;
existence
proof
set D = the AltCatStr of C;
reconsider D as
SubCatStr of C by
Def11;
take D;
thus thesis;
end;
end
definition
let C be non
empty
AltCatStr, o be
Object of C;
::
ALTCAT_2:def12
func
ObCat o ->
strict
SubCatStr of C means
:
Def12: the
carrier of it
=
{o} & the
Arrows of it
= ((o,o)
:->
<^o, o^>) & the
Comp of it
= (
[o, o, o]
.--> (the
Comp of C
. (o,o,o)));
existence
proof
set m = (
[o, o, o]
.--> (the
Comp of C
. (o,o,o)));
(
dom m)
=
{
[o, o, o]}
.=
[:
{o},
{o},
{o}:] by
MCART_1: 35;
then
reconsider m as
ManySortedSet of
[:
{o},
{o},
{o}:];
set a = ((o,o)
:->
<^o, o^>);
(
dom a)
=
[:
{o},
{o}:] by
FUNCT_2:def 1;
then
reconsider a as
ManySortedSet of
[:
{o},
{o}:];
A1: (a
. (o,o))
= (the
Arrows of C
. (o,o)) by
FUNCT_4: 80;
m is
ManySortedFunction of
{|a, a|},
{|a|}
proof
let i be
object;
A2: o
in
{o} by
TARSKI:def 1;
assume i
in
[:
{o},
{o},
{o}:];
then i
in
{
[o, o, o]} by
MCART_1: 35;
then
A3: i
=
[o, o, o] by
TARSKI:def 1;
then
A4: (
{|a|}
. i)
= (
{|a|}
. (o,o,o)) by
MULTOP_1:def 1
.= (the
Arrows of C
. (o,o)) by
A1,
A2,
ALTCAT_1:def 3;
(
{|a, a|}
. i)
= (
{|a, a|}
. (o,o,o)) by
A3,
MULTOP_1:def 1
.=
[:(the
Arrows of C
. (o,o)), (the
Arrows of C
. (o,o)):] by
A1,
A2,
ALTCAT_1:def 4;
hence thesis by
A3,
A4,
FUNCOP_1: 72;
end;
then
reconsider m as
BinComp of a;
set D =
AltCatStr (#
{o}, a, m #);
D is
SubCatStr of C
proof
thus the
carrier of D
c= the
carrier of C;
thus the
Arrows of D
cc= the
Arrows of C
proof
thus
[:the
carrier of D, the
carrier of D:]
c=
[:the
carrier of C, the
carrier of C:];
let i be
set;
assume i
in
[:the
carrier of D, the
carrier of D:];
then i
in
{
[o, o]} by
ZFMISC_1: 29;
then i
=
[o, o] by
TARSKI:def 1;
hence thesis by
A1;
end;
thus
[:the
carrier of D, the
carrier of D, the
carrier of D:]
c=
[:the
carrier of C, the
carrier of C, the
carrier of C:];
let i be
set;
assume i
in
[:the
carrier of D, the
carrier of D, the
carrier of D:];
then i
in
{
[o, o, o]} by
MCART_1: 35;
then
A5: i
=
[o, o, o] by
TARSKI:def 1;
then (the
Comp of D
. i)
= (the
Comp of C
. (o,o,o)) by
FUNCOP_1: 72
.= (the
Comp of C
. i) by
A5,
MULTOP_1:def 1;
hence thesis;
end;
then
reconsider D as
strict
SubCatStr of C;
take D;
thus thesis;
end;
uniqueness ;
end
reserve C for non
empty
AltCatStr,
o for
Object of C;
theorem ::
ALTCAT_2:23
Th23: for o9 be
Object of (
ObCat o) holds o9
= o
proof
let o9 be
Object of (
ObCat o);
the
carrier of (
ObCat o)
=
{o} by
Def12;
hence thesis by
TARSKI:def 1;
end;
registration
let C be non
empty
AltCatStr, o be
Object of C;
cluster (
ObCat o) ->
transitive non
empty;
coherence
proof
thus (
ObCat o) is
transitive
proof
let o1,o2,o3 be
Object of (
ObCat o);
assume that
<^o1, o2^>
<>
{} and
A1:
<^o2, o3^>
<>
{} ;
o1
= o by
Th23;
hence thesis by
A1,
Th23;
end;
the
carrier of (
ObCat o)
=
{o} by
Def12;
hence the
carrier of (
ObCat o) is non
empty;
end;
end
registration
let C be non
empty
AltCatStr;
cluster
transitive non
empty
strict for
SubCatStr of C;
existence
proof
set o = the
Object of C;
take (
ObCat o);
thus thesis;
end;
end
theorem ::
ALTCAT_2:24
Th24: for C be
transitive non
empty
AltCatStr, D1,D2 be
transitive non
empty
SubCatStr of C st the
carrier of D1
c= the
carrier of D2 & the
Arrows of D1
cc= the
Arrows of D2 holds D1 is
SubCatStr of D2
proof
let C be
transitive non
empty
AltCatStr, D1,D2 be
transitive non
empty
SubCatStr of C such that
A1: the
carrier of D1
c= the
carrier of D2 and
A2: the
Arrows of D1
cc= the
Arrows of D2;
thus the
carrier of D1
c= the
carrier of D2 by
A1;
thus the
Arrows of D1
cc= the
Arrows of D2 by
A2;
thus
[:the
carrier of D1, the
carrier of D1, the
carrier of D1:]
c=
[:the
carrier of D2, the
carrier of D2, the
carrier of D2:] by
A1,
MCART_1: 73;
let x be
set;
assume
A3: x
in
[:the
carrier of D1, the
carrier of D1, the
carrier of D1:];
then
consider i1,i2,i3 be
object such that
A4: i1
in the
carrier of D1 & i2
in the
carrier of D1 & i3
in the
carrier of D1 and
A5: x
=
[i1, i2, i3] by
MCART_1: 68;
reconsider i1, i2, i3 as
Object of D1 by
A4;
reconsider j1 = i1, j2 = i2, j3 = i3 as
Object of D2 by
A1;
[i2, i3]
in
[:the
carrier of D1, the
carrier of D1:];
then
A6:
<^i2, i3^>
c=
<^j2, j3^> by
A2;
reconsider c2 = (the
Comp of D2
. (j1,j2,j3)) as
Function of
[:
<^j2, j3^>,
<^j1, j2^>:],
<^j1, j3^>;
reconsider c1 = (the
Comp of D1
. (i1,i2,i3)) as
Function of
[:
<^i2, i3^>,
<^i1, i2^>:],
<^i1, i3^>;
<^i1, i3^>
=
{} implies
<^i2, i3^>
=
{} or
<^i1, i2^>
=
{} by
ALTCAT_1:def 2;
then
<^i1, i3^>
=
{} implies
[:
<^i2, i3^>,
<^i1, i2^>:]
=
{} by
ZFMISC_1: 90;
then
A7: (
dom c1)
=
[:
<^i2, i3^>,
<^i1, i2^>:] by
FUNCT_2:def 1;
<^j1, j3^>
=
{} implies
<^j2, j3^>
=
{} or
<^j1, j2^>
=
{} by
ALTCAT_1:def 2;
then
<^j1, j3^>
=
{} implies
[:
<^j2, j3^>,
<^j1, j2^>:]
=
{} by
ZFMISC_1: 90;
then
A8: (
dom c2)
=
[:
<^j2, j3^>,
<^j1, j2^>:] by
FUNCT_2:def 1;
[i1, i2]
in
[:the
carrier of D1, the
carrier of D1:];
then
<^i1, i2^>
c=
<^j1, j2^> by
A2;
then
A9: (
dom c1)
c= (
dom c2) by
A7,
A6,
A8,
ZFMISC_1: 96;
A10:
now
the
carrier of D1
c= the
carrier of C by
Def11;
then
reconsider o1 = i1, o2 = i2, o3 = i3 as
Object of C;
reconsider c = (the
Comp of C
. (o1,o2,o3)) as
Function of
[:
<^o2, o3^>,
<^o1, o2^>:],
<^o1, o3^>;
let y be
object;
A11: c
= (the
Comp of C
.
[o1, o2, o3]) by
MULTOP_1:def 1;
A12: c2
= (the
Comp of D2
.
[o1, o2, o3]) by
MULTOP_1:def 1;
[o1, o2, o3]
in
[:the
carrier of D2, the
carrier of D2, the
carrier of D2:] & the
Comp of D2
cc= the
Comp of C by
A1,
A4,
Def11,
MCART_1: 69;
then
A13: c2
c= c by
A11,
A12;
assume
A14: y
in (
dom c1);
the
Comp of D1
cc= the
Comp of C & c1
= (the
Comp of D1
.
[o1, o2, o3]) by
Def11,
MULTOP_1:def 1;
then c1
c= c by
A3,
A5,
A11;
hence (c1
. y)
= (c
. y) by
A14,
GRFUNC_1: 2
.= (c2
. y) by
A9,
A14,
A13,
GRFUNC_1: 2;
end;
c1
= (the
Comp of D1
. x) & c2
= (the
Comp of D2
. x) by
A5,
MULTOP_1:def 1;
hence thesis by
A9,
A10,
GRFUNC_1: 2;
end;
definition
let C be
AltCatStr, D be
SubCatStr of C;
::
ALTCAT_2:def13
attr D is
full means
:
Def13: the
Arrows of D
= (the
Arrows of C
|| the
carrier of D);
end
definition
let C be
with_units non
empty
AltCatStr, D be
SubCatStr of C;
::
ALTCAT_2:def14
attr D is
id-inheriting means
:
Def14: for o be
Object of D, o9 be
Object of C st o
= o9 holds (
idm o9)
in
<^o, o^> if D is non
empty
otherwise not contradiction;
consistency ;
end
registration
let C be
AltCatStr;
cluster
full
strict for
SubCatStr of C;
existence
proof
set D = the AltCatStr of C;
reconsider D as
SubCatStr of C by
Def11;
take D;
thus the
Arrows of D
= (the
Arrows of C
|| the
carrier of D);
thus thesis;
end;
end
registration
let C be non
empty
AltCatStr;
cluster
full non
empty
strict for
SubCatStr of C;
existence
proof
set D = the AltCatStr of C;
reconsider D as
SubCatStr of C by
Def11;
take D;
thus the
Arrows of D
= (the
Arrows of C
|| the
carrier of D);
thus the
carrier of D is non
empty;
thus thesis;
end;
end
registration
let C be
category, o be
Object of C;
cluster (
ObCat o) ->
full
id-inheriting;
coherence
proof
A1: the
carrier of (
ObCat o)
=
{o} by
Def12;
the
Arrows of (
ObCat o)
= ((o,o)
:->
<^o, o^>) by
Def12
.= (the
Arrows of C
|| the
carrier of (
ObCat o)) by
A1,
FUNCT_7: 8;
hence (
ObCat o) is
full;
now
let o1 be
Object of (
ObCat o), o2 be
Object of C;
assume
A2: o1
= o2;
A3: o1
= o by
Th23;
then
<^o1, o1^>
= (((o,o)
:->
<^o, o^>)
. (o,o)) by
Def12
.=
<^o2, o2^> by
A3,
A2,
FUNCT_4: 80;
hence (
idm o2)
in
<^o1, o1^> by
ALTCAT_1: 19;
end;
hence thesis by
Def14;
end;
end
registration
let C be
category;
cluster
full
id-inheriting non
empty
strict for
SubCatStr of C;
existence
proof
set o = the
Object of C;
take (
ObCat o);
thus thesis;
end;
end
reserve C for non
empty
transitive
AltCatStr;
theorem ::
ALTCAT_2:25
Th25: for D be
SubCatStr of C st the
carrier of D
= the
carrier of C & the
Arrows of D
= the
Arrows of C holds the AltCatStr of D
= the AltCatStr of C
proof
let D be
SubCatStr of C such that
A1: the
carrier of D
= the
carrier of C and
A2: the
Arrows of D
= the
Arrows of C;
A3: D is
transitive
proof
let o1,o2,o3 be
Object of D;
reconsider p1 = o1, p2 = o2, p3 = o3 as
Object of C by
A1;
assume
A4:
<^o1, o2^>
<>
{} &
<^o2, o3^>
<>
{} ;
A5:
<^o1, o3^>
=
<^p1, p3^> by
A2;
<^o1, o2^>
=
<^p1, p2^> &
<^o2, o3^>
=
<^p2, p3^> by
A2;
hence thesis by
A5,
A4,
ALTCAT_1:def 2;
end;
A6: C is
SubCatStr of C by
Th20;
D is non
empty by
A1;
then C is
SubCatStr of D by
A1,
A2,
A3,
A6,
Th24;
hence thesis by
Th22;
end;
theorem ::
ALTCAT_2:26
Th26: for D1,D2 be non
empty
transitive
SubCatStr of C st the
carrier of D1
= the
carrier of D2 & the
Arrows of D1
= the
Arrows of D2 holds the AltCatStr of D1
= the AltCatStr of D2
proof
let D1,D2 be non
empty
transitive
SubCatStr of C;
assume the
carrier of D1
= the
carrier of D2 & the
Arrows of D1
= the
Arrows of D2;
then D1 is
SubCatStr of D2 & D2 is
SubCatStr of D1 by
Th24;
hence thesis by
Th22;
end;
theorem ::
ALTCAT_2:27
for D be
full
SubCatStr of C st the
carrier of D
= the
carrier of C holds the AltCatStr of D
= the AltCatStr of C
proof
let D be
full
SubCatStr of C such that
A1: the
carrier of D
= the
carrier of C;
the
Arrows of D
= (the
Arrows of C
|| the
carrier of D) by
Def13
.= the
Arrows of C by
A1;
hence thesis by
A1,
Th25;
end;
theorem ::
ALTCAT_2:28
Th28: for C be non
empty
AltCatStr, D be
full non
empty
SubCatStr of C, o1,o2 be
Object of C, p1,p2 be
Object of D st o1
= p1 & o2
= p2 holds
<^o1, o2^>
=
<^p1, p2^>
proof
let C be non
empty
AltCatStr, D be
full non
empty
SubCatStr of C, o1,o2 be
Object of C, p1,p2 be
Object of D such that
A1: o1
= p1 & o2
= p2;
[p1, p2]
in
[:the
carrier of D, the
carrier of D:];
hence
<^o1, o2^>
= ((the
Arrows of C
|| the
carrier of D)
. (p1,p2)) by
A1,
FUNCT_1: 49
.=
<^p1, p2^> by
Def13;
end;
theorem ::
ALTCAT_2:29
Th29: for C be non
empty
AltCatStr, D be non
empty
SubCatStr of C holds for o be
Object of D holds o is
Object of C
proof
let C be non
empty
AltCatStr, D be non
empty
SubCatStr of C;
let o be
Object of D;
o
in the
carrier of D & the
carrier of D
c= the
carrier of C by
Def11;
hence thesis;
end;
registration
let C be
transitive non
empty
AltCatStr;
cluster
full non
empty ->
transitive for
SubCatStr of C;
coherence
proof
let D be
SubCatStr of C;
assume
A1: D is
full non
empty;
let o1,o2,o3 be
Object of D such that
A2:
<^o1, o2^>
<>
{} &
<^o2, o3^>
<>
{} ;
reconsider p1 = o1, p2 = o2, p3 = o3 as
Object of C by
A1,
Th29;
<^p1, p2^>
<>
{} &
<^p2, p3^>
<>
{} by
A1,
A2,
Th28;
then
<^p1, p3^>
<>
{} by
ALTCAT_1:def 2;
hence thesis by
A1,
Th28;
end;
end
theorem ::
ALTCAT_2:30
for D1,D2 be
full non
empty
SubCatStr of C st the
carrier of D1
= the
carrier of D2 holds the AltCatStr of D1
= the AltCatStr of D2
proof
let D1,D2 be
full non
empty
SubCatStr of C;
assume
A1: the
carrier of D1
= the
carrier of D2;
then the
Arrows of D1
= (the
Arrows of C
|| the
carrier of D2) by
Def13
.= the
Arrows of D2 by
Def13;
hence thesis by
A1,
Th26;
end;
theorem ::
ALTCAT_2:31
Th31: for C be non
empty
AltCatStr, D be non
empty
SubCatStr of C, o1,o2 be
Object of C, p1,p2 be
Object of D st o1
= p1 & o2
= p2 holds
<^p1, p2^>
c=
<^o1, o2^>
proof
let C be non
empty
AltCatStr, D be non
empty
SubCatStr of C, o1,o2 be
Object of C, p1,p2 be
Object of D such that
A1: o1
= p1 & o2
= p2;
[p1, p2]
in
[:the
carrier of D, the
carrier of D:] & the
Arrows of D
cc= the
Arrows of C by
Def11;
hence thesis by
A1;
end;
theorem ::
ALTCAT_2:32
Th32: for C be non
empty
transitive
AltCatStr, D be non
empty
transitive
SubCatStr of C, p1,p2,p3 be
Object of D st
<^p1, p2^>
<>
{} &
<^p2, p3^>
<>
{} holds for o1,o2,o3 be
Object of C st o1
= p1 & o2
= p2 & o3
= p3 holds for f be
Morphism of o1, o2, g be
Morphism of o2, o3, ff be
Morphism of p1, p2, gg be
Morphism of p2, p3 st f
= ff & g
= gg holds (g
* f)
= (gg
* ff)
proof
let C be non
empty
transitive
AltCatStr, D be non
empty
transitive
SubCatStr of C;
let p1,p2,p3 be
Object of D such that
A1:
<^p1, p2^>
<>
{} &
<^p2, p3^>
<>
{} ;
let o1,o2,o3 be
Object of C such that
A2: o1
= p1 & o2
= p2 & o3
= p3;
let f be
Morphism of o1, o2, g be
Morphism of o2, o3, ff be
Morphism of p1, p2, gg be
Morphism of p2, p3 such that
A3: f
= ff & g
= gg;
<^p1, p3^>
<>
{} by
A1,
ALTCAT_1:def 2;
then (
dom (the
Comp of D
. (p1,p2,p3)))
=
[:
<^p2, p3^>,
<^p1, p2^>:] by
FUNCT_2:def 1;
then
A4:
[gg, ff]
in (
dom (the
Comp of D
. (p1,p2,p3))) by
A1,
ZFMISC_1: 87;
A5: the
Comp of D
cc= the
Comp of C by
Def11;
(the
Comp of D
. (p1,p2,p3))
= (the
Comp of D
.
[p1, p2, p3]) & (the
Comp of C
. (o1,o2,o3))
= (the
Comp of C
.
[o1, o2, o3]) by
MULTOP_1:def 1;
then
A6: (the
Comp of D
. (p1,p2,p3))
c= (the
Comp of C
. (o1,o2,o3)) by
A2,
A5;
<^o1, o2^>
<>
{} &
<^o2, o3^>
<>
{} by
A1,
A2,
Th31,
XBOOLE_1: 3;
hence (g
* f)
= ((the
Comp of C
. (o1,o2,o3))
. (g,f)) by
ALTCAT_1:def 8
.= ((the
Comp of D
. (p1,p2,p3))
. (gg,ff)) by
A3,
A4,
A6,
GRFUNC_1: 2
.= (gg
* ff) by
A1,
ALTCAT_1:def 8;
end;
registration
let C be
associative
transitive non
empty
AltCatStr;
cluster
transitive ->
associative for non
empty
SubCatStr of C;
coherence
proof
let D be non
empty
SubCatStr of C;
assume D is
transitive;
then
reconsider D as
transitive non
empty
SubCatStr of C;
D is
associative
proof
let o1,o2,o3,o4 be
Object of D;
the
carrier of D
c= the
carrier of C by
Def11;
then
reconsider p1 = o1, p2 = o2, p3 = o3, p4 = o4 as
Object of C;
let f be
Morphism of o1, o2, g be
Morphism of o2, o3, h be
Morphism of o3, o4 such that
A1:
<^o1, o2^>
<>
{} and
A2:
<^o2, o3^>
<>
{} and
A3:
<^o3, o4^>
<>
{} ;
A4:
<^o2, o3^>
c=
<^p2, p3^> by
Th31;
g
in
<^o2, o3^> by
A2;
then
reconsider gg = g as
Morphism of p2, p3 by
A4;
A5:
<^o1, o2^>
c=
<^p1, p2^> by
Th31;
f
in
<^o1, o2^> by
A1;
then
reconsider ff = f as
Morphism of p1, p2 by
A5;
A6:
<^o1, o3^>
<>
{} & (g
* f)
= (gg
* ff) by
A1,
A2,
Th32,
ALTCAT_1:def 2;
A7:
<^o3, o4^>
c=
<^p3, p4^> by
Th31;
h
in
<^o3, o4^> by
A3;
then
reconsider hh = h as
Morphism of p3, p4 by
A7;
A8:
<^p3, p4^>
<>
{} by
A3,
Th31,
XBOOLE_1: 3;
A9:
<^p1, p2^>
<>
{} &
<^p2, p3^>
<>
{} by
A1,
A2,
Th31,
XBOOLE_1: 3;
<^o2, o4^>
<>
{} & (h
* g)
= (hh
* gg) by
A2,
A3,
Th32,
ALTCAT_1:def 2;
hence ((h
* g)
* f)
= ((hh
* gg)
* ff) by
A1,
Th32
.= (hh
* (gg
* ff)) by
A9,
A8,
Def8
.= (h
* (g
* f)) by
A3,
A6,
Th32;
end;
hence thesis;
end;
end
theorem ::
ALTCAT_2:33
Th33: for C be non
empty
AltCatStr, D be non
empty
SubCatStr of C, o1,o2 be
Object of C, p1,p2 be
Object of D st o1
= p1 & o2
= p2 &
<^p1, p2^>
<>
{} holds for n be
Morphism of p1, p2 holds n is
Morphism of o1, o2
proof
let C be non
empty
AltCatStr, D be non
empty
SubCatStr of C, o1,o2 be
Object of C, p1,p2 be
Object of D such that
A1: o1
= p1 & o2
= p2 &
<^p1, p2^>
<>
{} ;
let n be
Morphism of p1, p2;
n
in
<^p1, p2^> &
<^p1, p2^>
c=
<^o1, o2^> by
A1,
Th31;
hence thesis;
end;
registration
let C be
transitive
with_units non
empty
AltCatStr;
cluster
id-inheriting
transitive ->
with_units for non
empty
SubCatStr of C;
coherence
proof
let D be non
empty
SubCatStr of C such that
A1: D is
id-inheriting and
A2: D is
transitive;
let o be
Object of D;
reconsider p = o as
Object of C by
Th29;
reconsider i = (
idm p) as
Morphism of o, o by
A1,
Def14;
A3: (
idm p)
in
<^o, o^> by
A1,
Def14;
hence
<^o, o^>
<>
{} ;
take i;
let o9 be
Object of D, m9 be
Morphism of o9, o, m99 be
Morphism of o, o9;
hereby
reconsider p9 = o9 as
Object of C by
Th29;
assume
A4:
<^o9, o^>
<>
{} ;
then
A5:
<^p9, p^>
<>
{} by
Th31,
XBOOLE_1: 3;
reconsider n9 = m9 as
Morphism of p9, p by
A4,
Th33;
thus (i
* m9)
= ((
idm p)
* n9) by
A2,
A3,
A4,
Th32
.= m9 by
A5,
ALTCAT_1: 20;
end;
reconsider p9 = o9 as
Object of C by
Th29;
assume
A6:
<^o, o9^>
<>
{} ;
then
A7:
<^p, p9^>
<>
{} by
Th31,
XBOOLE_1: 3;
reconsider n99 = m99 as
Morphism of p, p9 by
A6,
Th33;
thus (m99
* i)
= (n99
* (
idm p)) by
A2,
A3,
A6,
Th32
.= m99 by
A7,
ALTCAT_1:def 17;
end;
end
registration
let C be
category;
cluster
id-inheriting
transitive for non
empty
SubCatStr of C;
existence
proof
set o = the
Object of C;
take (
ObCat o);
thus thesis;
end;
end
definition
let C be
category;
mode
subcategory of C is
id-inheriting
transitive
SubCatStr of C;
end
theorem ::
ALTCAT_2:34
for C be
category, D be non
empty
subcategory of C holds for o be
Object of D, o9 be
Object of C st o
= o9 holds (
idm o)
= (
idm o9)
proof
let C be
category, D be non
empty
subcategory of C;
let o be
Object of D, o9 be
Object of C;
assume
A1: o
= o9;
then
reconsider m = (
idm o9) as
Morphism of o, o by
Def14;
A2: (
idm o9)
in
<^o, o^> by
A1,
Def14;
now
let p be
Object of D such that
A3:
<^o, p^>
<>
{} ;
reconsider p9 = p as
Object of C by
Th29;
A4:
<^o9, p9^>
<>
{} by
A1,
A3,
Th31,
XBOOLE_1: 3;
let a be
Morphism of o, p;
reconsider n = a as
Morphism of o9, p9 by
A1,
A3,
Th33;
thus (a
* m)
= (n
* (
idm o9)) by
A1,
A2,
A3,
Th32
.= a by
A4,
ALTCAT_1:def 17;
end;
hence thesis by
ALTCAT_1:def 17;
end;