Article ISOCAT_1, MML version 4.99.1005
:: ISOCAT_1:th 1
theorem
for b1, b2 being Relation-like Function-like set
st b1 is one-to-one & b2 is one-to-one
holds [:b1,b2:] is one-to-one;
:: ISOCAT_1:th 2
theorem
for b1, b2 being non void Category-like CatStr holds
rng pr1(b1,b2) = the Edges of b1 & rng pr2(b2,b1) = the Edges of b1;
:: ISOCAT_1:th 3
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b2,b1
for b4 being Element of the Edges of b2
st b4 is invertible(b2)
holds b3 . b4 is invertible(b1);
:: ISOCAT_1:th 7
theorem
for b1, b2 being non void Category-like CatStr
for b3, b4 being Functor of b1,b2
st b3 is_transformable_to b4
for b5 being transformation of b3,b4
for b6 being Element of the Vertices of b1 holds
b5 . b6 in Hom(b3 . b6,b4 . b6);
:: ISOCAT_1:th 8
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
for b6, b7 being Functor of b2,b3
st b4 is_transformable_to b5 & b6 is_transformable_to b7
holds b6 * b4 is_transformable_to b7 * b5;
:: ISOCAT_1:th 9
theorem
for b1, b2 being non void Category-like CatStr
for b3, b4 being Functor of b1,b2
st b3 is_transformable_to b4
for b5 being transformation of b3,b4
st b5 is invertible(b1, b2, b3, b4)
for b6 being Element of the Vertices of b1 holds
b3 . b6,b4 . b6 are_isomorphic;
:: ISOCAT_1:modenot 1 => CAT_1:mode 2
definition
let a1, a2 be non void Category-like CatStr;
mode Functor of A1,A2 -> Function-like quasi_total Relation of the Edges of a1,the Edges of a2 means
(for b1 being Element of the Vertices of a1 holds
ex b2 being Element of the Vertices of a2 st
it . id b1 = id b2) &
(for b1 being Element of the Edges of a1 holds
it . id dom b1 = id dom (it . b1) &
it . id cod b1 = id cod (it . b1)) &
(for b1, b2 being Element of the Edges of a1
st dom b2 = cod b1
holds it . (b2 * b1) = (it . b2) * (it . b1));
end;
:: ISOCAT_1:dfs 1
definiens
let a1, a2 be non void Category-like CatStr;
let a3 be Function-like quasi_total Relation of the Edges of a1,the Edges of a2;
To prove
a3 is Functor of a1,a2
it is sufficient to prove
thus (for b1 being Element of the Vertices of a1 holds
ex b2 being Element of the Vertices of a2 st
a3 . id b1 = id b2) &
(for b1 being Element of the Edges of a1 holds
a3 . id dom b1 = id dom (a3 . b1) &
a3 . id cod b1 = id cod (a3 . b1)) &
(for b1, b2 being Element of the Edges of a1
st dom b2 = cod b1
holds a3 . (b2 * b1) = (a3 . b2) * (a3 . b1));
:: ISOCAT_1:def 1
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Function-like quasi_total Relation of the Edges of b1,the Edges of b2 holds
b3 is Functor of b1,b2
iff
(for b4 being Element of the Vertices of b1 holds
ex b5 being Element of the Vertices of b2 st
b3 . id b4 = id b5) &
(for b4 being Element of the Edges of b1 holds
b3 . id dom b4 = id dom (b3 . b4) &
b3 . id cod b4 = id cod (b3 . b4)) &
(for b4, b5 being Element of the Edges of b1
st dom b5 = cod b4
holds b3 . (b5 * b4) = (b3 . b5) * (b3 . b4));
:: ISOCAT_1:th 10
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b2,b1
st b3 is isomorphic(b2, b1)
for b4 being Element of the Edges of b1 holds
ex b5 being Element of the Edges of b2 st
b3 . b5 = b4;
:: ISOCAT_1:th 11
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b2,b1
st b3 is isomorphic(b2, b1)
for b4 being Element of the Vertices of b1 holds
ex b5 being Element of the Vertices of b2 st
b3 . b5 = b4;
:: ISOCAT_1:th 12
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b1,b2
st b3 is one-to-one
holds Obj b3 is one-to-one;
:: ISOCAT_1:funcnot 1 => ISOCAT_1:func 1
definition
let a1, a2 be non void Category-like CatStr;
let a3 be Functor of a1,a2;
assume a3 is isomorphic(a1, a2);
func A3 " -> Functor of a2,a1 equals
a3 ";
end;
:: ISOCAT_1:def 2
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b1,b2
st b3 is isomorphic(b1, b2)
holds b3 " = b3 ";
:: ISOCAT_1:prednot 1 => CAT_1:attr 9
notation
let a1, a2 be non void Category-like CatStr;
let a3 be Functor of a1,a2;
synonym a3 is_an_isomorphism for isomorphic;
end;
:: ISOCAT_1:attrnot 1 => CAT_1:attr 9
definition
let a1, a2 be non void Category-like CatStr;
let a3 be Functor of a1,a2;
attr a3 is isomorphic means
a3 is one-to-one & rng a3 = the Edges of a2;
end;
:: ISOCAT_1:dfs 3
definiens
let a1, a2 be non void Category-like CatStr;
let a3 be Functor of a1,a2;
To prove
a3 is isomorphic
it is sufficient to prove
thus a3 is one-to-one & rng a3 = the Edges of a2;
:: ISOCAT_1:def 3
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b1,b2 holds
b3 is isomorphic(b1, b2)
iff
b3 is one-to-one & rng b3 = the Edges of b2;
:: ISOCAT_1:th 13
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b1,b2
st b3 is isomorphic(b1, b2)
holds b3 " is isomorphic(b2, b1);
:: ISOCAT_1:th 14
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b1,b2
st b3 is isomorphic(b1, b2)
holds (Obj b3) " = Obj (b3 ");
:: ISOCAT_1:th 15
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b1,b2
st b3 is isomorphic(b1, b2)
holds b3 " " = b3;
:: ISOCAT_1:th 16
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b2,b1
st b3 is isomorphic(b2, b1)
holds b3 * (b3 ") = id b1 & b3 " * b3 = id b2;
:: ISOCAT_1:th 17
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4 being Functor of b1,b2
for b5 being Functor of b2,b3
st b4 is isomorphic(b1, b2) & b5 is isomorphic(b2, b3)
holds b5 * b4 is isomorphic(b1, b3);
:: ISOCAT_1:prednot 2 => ISOCAT_1:pred 1
definition
let a1, a2 be non void Category-like CatStr;
pred A1,A2 are_isomorphic means
ex b1 being Functor of a1,a2 st
b1 is isomorphic(a1, a2);
symmetry;
:: for a1, a2 being non void Category-like CatStr
:: st a1,a2 are_isomorphic
:: holds a2,a1 are_isomorphic;
reflexivity;
:: for a1 being non void Category-like CatStr holds
:: a1,a1 are_isomorphic;
end;
:: ISOCAT_1:dfs 4
definiens
let a1, a2 be non void Category-like CatStr;
To prove
a1,a2 are_isomorphic
it is sufficient to prove
thus ex b1 being Functor of a1,a2 st
b1 is isomorphic(a1, a2);
:: ISOCAT_1:def 4
theorem
for b1, b2 being non void Category-like CatStr holds
b1,b2 are_isomorphic
iff
ex b3 being Functor of b1,b2 st
b3 is isomorphic(b1, b2);
:: ISOCAT_1:prednot 3 => ISOCAT_1:pred 1
notation
let a1, a2 be non void Category-like CatStr;
synonym a1 ~= a2 for a1,a2 are_isomorphic;
end;
:: ISOCAT_1:th 20
theorem
for b1, b2, b3 being non void Category-like CatStr
st b1,b2 are_isomorphic & b2,b3 are_isomorphic
holds b1,b3 are_isomorphic;
:: ISOCAT_1:th 21
theorem
for b1 being non void Category-like CatStr
for b2, b3 being set holds
[:1Cat(b2,b3),b1:],b1 are_isomorphic;
:: ISOCAT_1:th 22
theorem
for b1, b2 being non void Category-like CatStr holds
[:b1,b2:],[:b2,b1:] are_isomorphic;
:: ISOCAT_1:th 23
theorem
for b1, b2, b3 being non void Category-like CatStr holds
[:[:b1,b2:],b3:],[:b1,[:b2,b3:]:] are_isomorphic;
:: ISOCAT_1:th 24
theorem
for b1, b2, b3, b4 being non void Category-like CatStr
st b1,b2 are_isomorphic & b3,b4 are_isomorphic
holds [:b1,b3:],[:b2,b4:] are_isomorphic;
:: ISOCAT_1:funcnot 2 => ISOCAT_1:func 2
definition
let a1, a2, a3 be non void Category-like CatStr;
let a4, a5 be Functor of a1,a2;
let a6 be transformation of a4,a5;
let a7 be Functor of a2,a3;
assume a4 is_transformable_to a5;
func A7 * A6 -> transformation of a7 * a4,a7 * a5 equals
a7 * a6;
end;
:: ISOCAT_1:def 5
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
st b4 is_transformable_to b5
for b6 being transformation of b4,b5
for b7 being Functor of b2,b3 holds
b7 * b6 = b7 * b6;
:: ISOCAT_1:funcnot 3 => ISOCAT_1:func 3
definition
let a1, a2, a3 be non void Category-like CatStr;
let a4, a5 be Functor of a2,a3;
let a6 be Functor of a1,a2;
let a7 be transformation of a4,a5;
assume a4 is_transformable_to a5;
func A7 * A6 -> transformation of a4 * a6,a5 * a6 equals
a7 * Obj a6;
end;
:: ISOCAT_1:def 6
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b2,b3
st b4 is_transformable_to b5
for b6 being Functor of b1,b2
for b7 being transformation of b4,b5 holds
b7 * b6 = b7 * Obj b6;
:: ISOCAT_1:th 25
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
st b4 is_transformable_to b5
for b6 being Functor of b3,b1
for b7 being transformation of b4,b5
for b8 being Element of the Vertices of b3 holds
(b7 * b6) . b8 = b7 . (b6 . b8);
:: ISOCAT_1:th 26
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
st b4 is_transformable_to b5
for b6 being transformation of b4,b5
for b7 being Functor of b2,b3
for b8 being Element of the Vertices of b1 holds
(b7 * b6) . b8 = b7 . (b6 . b8);
:: ISOCAT_1:th 27
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
for b6, b7 being Functor of b2,b3
st b4 is_naturally_transformable_to b5 & b6 is_naturally_transformable_to b7
holds b6 * b4 is_naturally_transformable_to b7 * b5;
:: ISOCAT_1:funcnot 4 => ISOCAT_1:func 4
definition
let a1, a2, a3 be non void Category-like CatStr;
let a4, a5 be Functor of a1,a2;
let a6 be natural_transformation of a4,a5;
let a7 be Functor of a2,a3;
assume a4 is_naturally_transformable_to a5;
func A7 * A6 -> natural_transformation of a7 * a4,a7 * a5 equals
a7 * a6;
end;
:: ISOCAT_1:def 7
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
st b4 is_naturally_transformable_to b5
for b6 being natural_transformation of b4,b5
for b7 being Functor of b2,b3 holds
b7 * b6 = b7 * b6;
:: ISOCAT_1:th 28
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
st b4 is_naturally_transformable_to b5
for b6 being natural_transformation of b4,b5
for b7 being Functor of b2,b3
for b8 being Element of the Vertices of b1 holds
(b7 * b6) . b8 = b7 . (b6 . b8);
:: ISOCAT_1:funcnot 5 => ISOCAT_1:func 5
definition
let a1, a2, a3 be non void Category-like CatStr;
let a4, a5 be Functor of a2,a3;
let a6 be Functor of a1,a2;
let a7 be natural_transformation of a4,a5;
assume a4 is_naturally_transformable_to a5;
func A7 * A6 -> natural_transformation of a4 * a6,a5 * a6 equals
a7 * a6;
end;
:: ISOCAT_1:def 8
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b2,b3
st b4 is_naturally_transformable_to b5
for b6 being Functor of b1,b2
for b7 being natural_transformation of b4,b5 holds
b7 * b6 = b7 * b6;
:: ISOCAT_1:th 29
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
st b4 is_naturally_transformable_to b5
for b6 being Functor of b3,b1
for b7 being natural_transformation of b4,b5
for b8 being Element of the Vertices of b3 holds
(b7 * b6) . b8 = b7 . (b6 . b8);
:: ISOCAT_1:th 30
theorem
for b1, b2 being non void Category-like CatStr
for b3, b4 being Functor of b2,b1
st b3 is_naturally_transformable_to b4
for b5 being Element of the Vertices of b2 holds
Hom(b3 . b5,b4 . b5) <> {};
:: ISOCAT_1:th 31
theorem
for b1, b2 being non void Category-like CatStr
for b3, b4 being Functor of b2,b1
st b3 is_naturally_transformable_to b4
for b5, b6 being natural_transformation of b3,b4
st for b7 being Element of the Vertices of b2 holds
b5 . b7 = b6 . b7
holds b5 = b6;
:: ISOCAT_1:th 32
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5, b6 being Functor of b2,b3
for b7 being Functor of b3,b1
for b8 being natural_transformation of b4,b5
for b9 being natural_transformation of b5,b6
st b4 is_naturally_transformable_to b5 & b5 is_naturally_transformable_to b6
holds b7 * (b9 `*` b8) = (b7 * b9) `*` (b7 * b8);
:: ISOCAT_1:th 33
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4 being Functor of b1,b2
for b5, b6, b7 being Functor of b2,b3
for b8 being natural_transformation of b5,b6
for b9 being natural_transformation of b6,b7
st b5 is_naturally_transformable_to b6 & b6 is_naturally_transformable_to b7
holds (b9 `*` b8) * b4 = (b9 * b4) `*` (b8 * b4);
:: ISOCAT_1:th 34
theorem
for b1, b2, b3, b4 being non void Category-like CatStr
for b5 being Functor of b1,b2
for b6 being Functor of b2,b3
for b7, b8 being Functor of b3,b4
for b9 being natural_transformation of b7,b8
st b7 is_naturally_transformable_to b8
holds (b9 * b6) * b5 = b9 * (b6 * b5);
:: ISOCAT_1:th 35
theorem
for b1, b2, b3, b4 being non void Category-like CatStr
for b5 being Functor of b1,b3
for b6, b7 being Functor of b3,b4
for b8 being Functor of b4,b2
for b9 being natural_transformation of b6,b7
st b6 is_naturally_transformable_to b7
holds (b8 * b9) * b5 = b8 * (b9 * b5);
:: ISOCAT_1:th 36
theorem
for b1, b2, b3, b4 being non void Category-like CatStr
for b5, b6 being Functor of b3,b4
for b7 being Functor of b4,b1
for b8 being Functor of b1,b2
for b9 being natural_transformation of b5,b6
st b5 is_naturally_transformable_to b6
holds (b8 * b7) * b9 = b8 * (b7 * b9);
:: ISOCAT_1:th 37
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4 being Functor of b1,b2
for b5 being Functor of b2,b3 holds
(id b5) * b4 = id (b5 * b4);
:: ISOCAT_1:th 38
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4 being Functor of b1,b2
for b5 being Functor of b2,b3 holds
b5 * id b4 = id (b5 * b4);
:: ISOCAT_1:th 39
theorem
for b1, b2 being non void Category-like CatStr
for b3, b4 being Functor of b2,b1
for b5 being natural_transformation of b3,b4
st b3 is_naturally_transformable_to b4
holds b5 * id b2 = b5;
:: ISOCAT_1:th 40
theorem
for b1, b2 being non void Category-like CatStr
for b3, b4 being Functor of b1,b2
for b5 being natural_transformation of b3,b4
st b3 is_naturally_transformable_to b4
holds (id b2) * b5 = b5;
:: ISOCAT_1:funcnot 6 => ISOCAT_1:func 6
definition
let a1, a2, a3 be non void Category-like CatStr;
let a4, a5 be Functor of a1,a2;
let a6, a7 be Functor of a2,a3;
let a8 be natural_transformation of a4,a5;
let a9 be natural_transformation of a6,a7;
func A9 (#) A8 -> natural_transformation of a6 * a4,a7 * a5 equals
(a9 * a5) `*` (a6 * a8);
end;
:: ISOCAT_1:def 9
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
for b6, b7 being Functor of b2,b3
for b8 being natural_transformation of b4,b5
for b9 being natural_transformation of b6,b7 holds
b9 (#) b8 = (b9 * b5) `*` (b6 * b8);
:: ISOCAT_1:th 41
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b1,b2
for b6, b7 being Functor of b2,b3
for b8 being natural_transformation of b4,b5
for b9 being natural_transformation of b6,b7
st b4 is_naturally_transformable_to b5 & b6 is_naturally_transformable_to b7
holds b9 (#) b8 = (b7 * b8) `*` (b9 * b4);
:: ISOCAT_1:th 42
theorem
for b1, b2 being non void Category-like CatStr
for b3, b4 being Functor of b1,b2
for b5 being natural_transformation of b3,b4
st b3 is_naturally_transformable_to b4
holds (id id b2) (#) b5 = b5;
:: ISOCAT_1:th 43
theorem
for b1, b2 being non void Category-like CatStr
for b3, b4 being Functor of b2,b1
for b5 being natural_transformation of b3,b4
st b3 is_naturally_transformable_to b4
holds b5 (#) id id b2 = b5;
:: ISOCAT_1:th 44
theorem
for b1, b2, b3, b4 being non void Category-like CatStr
for b5, b6 being Functor of b1,b2
for b7, b8 being Functor of b2,b3
for b9, b10 being Functor of b3,b4
for b11 being natural_transformation of b5,b6
for b12 being natural_transformation of b7,b8
for b13 being natural_transformation of b9,b10
st b5 is_naturally_transformable_to b6 & b7 is_naturally_transformable_to b8 & b9 is_naturally_transformable_to b10
holds b13 (#) (b12 (#) b11) = (b13 (#) b12) (#) b11;
:: ISOCAT_1:th 45
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4 being Functor of b1,b2
for b5, b6 being Functor of b2,b3
for b7 being natural_transformation of b5,b6
st b5 is_naturally_transformable_to b6
holds b7 * b4 = b7 (#) id b4;
:: ISOCAT_1:th 46
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5 being Functor of b2,b3
for b6 being Functor of b3,b1
for b7 being natural_transformation of b4,b5
st b4 is_naturally_transformable_to b5
holds b6 * b7 = (id b6) (#) b7;
:: ISOCAT_1:th 47
theorem
for b1, b2, b3 being non void Category-like CatStr
for b4, b5, b6 being Functor of b1,b2
for b7, b8, b9 being Functor of b2,b3
for b10 being natural_transformation of b4,b5
for b11 being natural_transformation of b5,b6
for b12 being natural_transformation of b7,b8
for b13 being natural_transformation of b8,b9
st b4 is_naturally_transformable_to b5 & b5 is_naturally_transformable_to b6 & b7 is_naturally_transformable_to b8 & b8 is_naturally_transformable_to b9
holds (b13 `*` b12) (#) (b11 `*` b10) = (b13 (#) b11) `*` (b12 (#) b10);
:: ISOCAT_1:th 48
theorem
for b1, b2, b3, b4 being non void Category-like CatStr
for b5 being Functor of b1,b2
for b6 being Functor of b3,b4
for b7, b8 being Functor of b2,b3
st b7,b8 are_naturally_equivalent
holds b6 * b7,b6 * b8 are_naturally_equivalent & b7 * b5,b8 * b5 are_naturally_equivalent;
:: ISOCAT_1:th 49
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b1,b2
for b4 being Functor of b2,b1
for b5 being Functor of b1,b1
st b5,id b1 are_naturally_equivalent
holds b3 * b5,b3 are_naturally_equivalent & b5 * b4,b4 are_naturally_equivalent;
:: ISOCAT_1:prednot 4 => ISOCAT_1:pred 2
definition
let a1, a2 be non void Category-like CatStr;
pred A1 is_equivalent_with A2 means
ex b1 being Functor of a1,a2 st
ex b2 being Functor of a2,a1 st
b2 * b1,id a1 are_naturally_equivalent & b1 * b2,id a2 are_naturally_equivalent;
symmetry;
:: for a1, a2 being non void Category-like CatStr
:: st a1 is_equivalent_with a2
:: holds a2 is_equivalent_with a1;
reflexivity;
:: for a1 being non void Category-like CatStr holds
:: a1 is_equivalent_with a1;
end;
:: ISOCAT_1:dfs 10
definiens
let a1, a2 be non void Category-like CatStr;
To prove
a1 is_equivalent_with a2
it is sufficient to prove
thus ex b1 being Functor of a1,a2 st
ex b2 being Functor of a2,a1 st
b2 * b1,id a1 are_naturally_equivalent & b1 * b2,id a2 are_naturally_equivalent;
:: ISOCAT_1:def 10
theorem
for b1, b2 being non void Category-like CatStr holds
b1 is_equivalent_with b2
iff
ex b3 being Functor of b1,b2 st
ex b4 being Functor of b2,b1 st
b4 * b3,id b1 are_naturally_equivalent & b3 * b4,id b2 are_naturally_equivalent;
:: ISOCAT_1:prednot 5 => ISOCAT_1:pred 2
notation
let a1, a2 be non void Category-like CatStr;
synonym a1,a2 are_equivalent for a1 is_equivalent_with a2;
end;
:: ISOCAT_1:th 50
theorem
for b1, b2 being non void Category-like CatStr
st b1,b2 are_isomorphic
holds b1 is_equivalent_with b2;
:: ISOCAT_1:th 53
theorem
for b1, b2, b3 being non void Category-like CatStr
st b1 is_equivalent_with b2 & b2 is_equivalent_with b3
holds b1 is_equivalent_with b3;
:: ISOCAT_1:modenot 2 => ISOCAT_1:mode 1
definition
let a1, a2 be non void Category-like CatStr;
assume a1 is_equivalent_with a2;
mode Equivalence of A1,A2 -> Functor of a1,a2 means
ex b1 being Functor of a2,a1 st
b1 * it,id a1 are_naturally_equivalent & it * b1,id a2 are_naturally_equivalent;
end;
:: ISOCAT_1:dfs 11
definiens
let a1, a2 be non void Category-like CatStr;
let a3 be Functor of a1,a2;
To prove
a3 is Equivalence of a1,a2
it is sufficient to prove
thus a1 is_equivalent_with a2;
thus ex b1 being Functor of a2,a1 st
b1 * a3,id a1 are_naturally_equivalent & a3 * b1,id a2 are_naturally_equivalent;
:: ISOCAT_1:def 11
theorem
for b1, b2 being non void Category-like CatStr
st b1 is_equivalent_with b2
for b3 being Functor of b1,b2 holds
b3 is Equivalence of b1,b2
iff
ex b4 being Functor of b2,b1 st
b4 * b3,id b1 are_naturally_equivalent & b3 * b4,id b2 are_naturally_equivalent;
:: ISOCAT_1:th 54
theorem
for b1 being non void Category-like CatStr holds
id b1 is Equivalence of b1,b1;
:: ISOCAT_1:th 55
theorem
for b1, b2, b3 being non void Category-like CatStr
st b1 is_equivalent_with b2 & b2 is_equivalent_with b3
for b4 being Equivalence of b1,b2
for b5 being Equivalence of b2,b3 holds
b5 * b4 is Equivalence of b1,b3;
:: ISOCAT_1:th 56
theorem
for b1, b2 being non void Category-like CatStr
st b1 is_equivalent_with b2
for b3 being Equivalence of b1,b2 holds
ex b4 being Equivalence of b2,b1 st
b4 * b3,id b1 are_naturally_equivalent & b3 * b4,id b2 are_naturally_equivalent;
:: ISOCAT_1:th 57
theorem
for b1, b2 being non void Category-like CatStr
for b3 being Functor of b1,b2
for b4 being Functor of b2,b1
st b4 * b3,id b1 are_naturally_equivalent
holds b3 is faithful(b1, b2);
:: ISOCAT_1:th 58
theorem
for b1, b2 being non void Category-like CatStr
st b1 is_equivalent_with b2
for b3 being Equivalence of b1,b2 holds
b3 is full(b1, b2) &
b3 is faithful(b1, b2) &
(for b4 being Element of the Vertices of b2 holds
ex b5 being Element of the Vertices of b1 st
b4,b3 . b5 are_isomorphic);