:: OPPCAT_1 semantic presentation

definition
let c1, c2, c3 be non empty set ;
let c4 be PartFunc of [:c1,c2:],c3;
redefine func ~ as ~ c4 -> PartFunc of [:a2,a1:],a3;
coherence
~ c4 is PartFunc of [:c2,c1:],c3
by FUNCT_4:49;
end;

theorem Th1: :: OPPCAT_1:1
for b1 being Category holds CatStr(# the Objects of b1,the Morphisms of b1,the Cod of b1,the Dom of b1,(~ the Comp of b1),the Id of b1 #) is Category
proof end;

definition
let c1 be Category;
func c1 opp -> strict Category equals :: OPPCAT_1:def 1
CatStr(# the Objects of a1,the Morphisms of a1,the Cod of a1,the Dom of a1,(~ the Comp of a1),the Id of a1 #);
coherence
CatStr(# the Objects of c1,the Morphisms of c1,the Cod of c1,the Dom of c1,(~ the Comp of c1),the Id of c1 #) is strict Category
by Th1;
end;

:: deftheorem Def1 defines opp OPPCAT_1:def 1 :
for b1 being Category holds b1 opp = CatStr(# the Objects of b1,the Morphisms of b1,the Cod of b1,the Dom of b1,(~ the Comp of b1),the Id of b1 #);

theorem Th2: :: OPPCAT_1:2
for b1 being Category holds (b1 opp ) opp = CatStr(# the Objects of b1,the Morphisms of b1,the Dom of b1,the Cod of b1,the Comp of b1,the Id of b1 #) by FUNCT_4:54;

definition
let c1 be Category;
let c2 be Object of c1;
func c2 opp -> Object of (a1 opp ) equals :: OPPCAT_1:def 2
a2;
coherence
c2 is Object of (c1 opp )
;
end;

:: deftheorem Def2 defines opp OPPCAT_1:def 2 :
for b1 being Category
for b2 being Object of b1 holds b2 opp = b2;

definition
let c1 be Category;
let c2 be Object of (c1 opp );
func opp c2 -> Object of a1 equals :: OPPCAT_1:def 3
a2 opp ;
coherence
c2 opp is Object of c1
;
end;

:: deftheorem Def3 defines opp OPPCAT_1:def 3 :
for b1 being Category
for b2 being Object of (b1 opp ) holds opp b2 = b2 opp ;

theorem Th3: :: OPPCAT_1:3
for b1 being Category
for b2 being Object of b1 holds (b2 opp ) opp = b2 ;

theorem Th4: :: OPPCAT_1:4
for b1 being Category
for b2 being Object of b1 holds opp (b2 opp ) = b2 ;

theorem Th5: :: OPPCAT_1:5
for b1 being Category
for b2 being Object of (b1 opp ) holds (opp b2) opp = b2 ;

definition
let c1 be Category;
let c2 be Morphism of c1;
func c2 opp -> Morphism of (a1 opp ) equals :: OPPCAT_1:def 4
a2;
coherence
c2 is Morphism of (c1 opp )
;
end;

:: deftheorem Def4 defines opp OPPCAT_1:def 4 :
for b1 being Category
for b2 being Morphism of b1 holds b2 opp = b2;

definition
let c1 be Category;
let c2 be Morphism of (c1 opp );
func opp c2 -> Morphism of a1 equals :: OPPCAT_1:def 5
a2 opp ;
coherence
c2 opp is Morphism of c1
;
end;

:: deftheorem Def5 defines opp OPPCAT_1:def 5 :
for b1 being Category
for b2 being Morphism of (b1 opp ) holds opp b2 = b2 opp ;

theorem Th6: :: OPPCAT_1:6
for b1 being Category
for b2 being Morphism of b1 holds (b2 opp ) opp = b2 ;

theorem Th7: :: OPPCAT_1:7
for b1 being Category
for b2 being Morphism of b1 holds opp (b2 opp ) = b2 ;

theorem Th8: :: OPPCAT_1:8
for b1 being Category
for b2 being Morphism of (b1 opp ) holds (opp b2) opp = b2 ;

theorem Th9: :: OPPCAT_1:9
for b1 being Category
for b2 being Morphism of b1 holds
( dom (b2 opp ) = cod b2 & cod (b2 opp ) = dom b2 ) ;

theorem Th10: :: OPPCAT_1:10
for b1 being Category
for b2 being Morphism of (b1 opp ) holds
( dom (opp b2) = cod b2 & cod (opp b2) = dom b2 ) ;

theorem Th11: :: OPPCAT_1:11
for b1 being Category
for b2 being Morphism of b1 holds
( (dom b2) opp = cod (b2 opp ) & (cod b2) opp = dom (b2 opp ) ) ;

theorem Th12: :: OPPCAT_1:12
for b1 being Category
for b2 being Morphism of (b1 opp ) holds
( opp (dom b2) = cod (opp b2) & opp (cod b2) = dom (opp b2) ) ;

theorem Th13: :: OPPCAT_1:13
for b1 being Category
for b2, b3 being Object of b1
for b4 being Morphism of b1 holds
( b4 in Hom b2,b3 iff b4 opp in Hom (b3 opp ),(b2 opp ) )
proof end;

theorem Th14: :: OPPCAT_1:14
for b1 being Category
for b2, b3 being Object of (b1 opp )
for b4 being Morphism of (b1 opp ) holds
( b4 in Hom b2,b3 iff opp b4 in Hom (opp b3),(opp b2) )
proof end;

theorem Th15: :: OPPCAT_1:15
for b1 being Category
for b2, b3 being Object of b1
for b4 being Morphism of b2,b3 st Hom b2,b3 <> {} holds
b4 opp is Morphism of b3 opp ,b2 opp
proof end;

theorem Th16: :: OPPCAT_1:16
for b1 being Category
for b2, b3 being Object of (b1 opp )
for b4 being Morphism of b2,b3 st Hom b2,b3 <> {} holds
opp b4 is Morphism of opp b3, opp b2
proof end;

theorem Th17: :: OPPCAT_1:17
for b1 being Category
for b2, b3 being Morphism of b1 st dom b3 = cod b2 holds
(b3 * b2) opp = (b2 opp ) * (b3 opp )
proof end;

theorem Th18: :: OPPCAT_1:18
for b1 being Category
for b2, b3 being Morphism of b1 st cod (b3 opp ) = dom (b2 opp ) holds
(b3 * b2) opp = (b2 opp ) * (b3 opp )
proof end;

theorem Th19: :: OPPCAT_1:19
for b1 being Category
for b2, b3 being Morphism of (b1 opp ) st dom b3 = cod b2 holds
opp (b3 * b2) = (opp b2) * (opp b3)
proof end;

theorem Th20: :: OPPCAT_1:20
for b1 being Category
for b2, b3, b4 being Object of b1
for b5 being Morphism of b2,b3
for b6 being Morphism of b3,b4 st Hom b2,b3 <> {} & Hom b3,b4 <> {} holds
(b6 * b5) opp = (b5 opp ) * (b6 opp )
proof end;

theorem Th21: :: OPPCAT_1:21
for b1 being Category
for b2 being Object of b1 holds (id b2) opp = id (b2 opp ) ;

theorem Th22: :: OPPCAT_1:22
for b1 being Category
for b2 being Object of (b1 opp ) holds opp (id b2) = id (opp b2) ;

theorem Th23: :: OPPCAT_1:23
for b1 being Category
for b2 being Morphism of b1 holds
( b2 opp is monic iff b2 is epi )
proof end;

theorem Th24: :: OPPCAT_1:24
for b1 being Category
for b2 being Morphism of b1 holds
( b2 opp is epi iff b2 is monic )
proof end;

theorem Th25: :: OPPCAT_1:25
for b1 being Category
for b2 being Morphism of b1 holds
( b2 opp is invertible iff b2 is invertible )
proof end;

theorem Th26: :: OPPCAT_1:26
for b1 being Category
for b2 being Object of b1 holds
( b2 is initial iff b2 opp is terminal )
proof end;

theorem Th27: :: OPPCAT_1:27
for b1 being Category
for b2 being Object of b1 holds
( b2 opp is initial iff b2 is terminal )
proof end;

definition
let c1, c2 be Category;
let c3 be Function of the Morphisms of (c1 opp ),the Morphisms of c2;
func /* c3 -> Function of the Morphisms of a1,the Morphisms of a2 means :Def6: :: OPPCAT_1:def 6
for b1 being Morphism of a1 holds a4 . b1 = a3 . (b1 opp );
existence
ex b1 being Function of the Morphisms of c1,the Morphisms of c2 st
for b2 being Morphism of c1 holds b1 . b2 = c3 . (b2 opp )
proof end;
uniqueness
for b1, b2 being Function of the Morphisms of c1,the Morphisms of c2 st ( for b3 being Morphism of c1 holds b1 . b3 = c3 . (b3 opp ) ) & ( for b3 being Morphism of c1 holds b2 . b3 = c3 . (b3 opp ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def6 defines /* OPPCAT_1:def 6 :
for b1, b2 being Category
for b3 being Function of the Morphisms of (b1 opp ),the Morphisms of b2
for b4 being Function of the Morphisms of b1,the Morphisms of b2 holds
( b4 = /* b3 iff for b5 being Morphism of b1 holds b4 . b5 = b3 . (b5 opp ) );

theorem Th28: :: OPPCAT_1:28
for b1, b2 being Category
for b3 being Function of the Morphisms of (b1 opp ),the Morphisms of b2
for b4 being Morphism of (b1 opp ) holds (/* b3) . (opp b4) = b3 . b4
proof end;

Lemma11: for b1, b2 being Category
for b3 being Functor of b1 opp ,b2
for b4 being Object of b1 holds (/* b3) . (id b4) = id ((Obj b3) . (b4 opp ))
proof end;

theorem Th29: :: OPPCAT_1:29
for b1, b2 being Category
for b3 being Functor of b1 opp ,b2
for b4 being Object of b1 holds (Obj (/* b3)) . b4 = (Obj b3) . (b4 opp )
proof end;

theorem Th30: :: OPPCAT_1:30
for b1, b2 being Category
for b3 being Functor of b1 opp ,b2
for b4 being Object of (b1 opp ) holds (Obj (/* b3)) . (opp b4) = (Obj b3) . b4
proof end;

Lemma13: for b1, b2 being Category
for b3 being Functor of b1 opp ,b2
for b4 being Object of b1 holds (/* b3) . (id b4) = id ((Obj (/* b3)) . b4)
proof end;

E14: now
let c1, c2 be Category;
let c3 be Functor of c1 opp ,c2;
let c4 be Object of c1;
(/* c3) . (id c4) = id ((Obj (/* c3)) . c4) by Lemma13;
hence ex b1 being Object of c2 st (/* c3) . (id c4) = id b1 ;
end;

Lemma15: for b1, b2 being Category
for b3 being Functor of b1 opp ,b2
for b4 being Morphism of b1 holds
( (Obj (/* b3)) . (dom b4) = cod ((/* b3) . b4) & (Obj (/* b3)) . (cod b4) = dom ((/* b3) . b4) )
proof end;

E16: now
let c1, c2 be Category;
let c3 be Functor of c1 opp ,c2;
let c4 be Morphism of c1;
thus (/* c3) . (id (dom c4)) = id ((Obj (/* c3)) . (dom c4)) by Lemma13
.= id (cod ((/* c3) . c4)) by Lemma15 ;
thus (/* c3) . (id (cod c4)) = id ((Obj (/* c3)) . (cod c4)) by Lemma13
.= id (dom ((/* c3) . c4)) by Lemma15 ;
end;

Lemma17: for b1, b2 being Category
for b3 being Functor of b1 opp ,b2
for b4, b5 being Morphism of b1 st dom b5 = cod b4 holds
(/* b3) . (b5 * b4) = ((/* b3) . b4) * ((/* b3) . b5)
proof end;

definition
let c1, c2 be Category;
mode Contravariant_Functor of c1,c2 -> Function of the Morphisms of a1,the Morphisms of a2 means :Def7: :: OPPCAT_1:def 7
( ( for b1 being Object of a1 ex b2 being Object of a2 st a3 . (id b1) = id b2 ) & ( for b1 being Morphism of a1 holds
( a3 . (id (dom b1)) = id (cod (a3 . b1)) & a3 . (id (cod b1)) = id (dom (a3 . b1)) ) ) & ( for b1, b2 being Morphism of a1 st dom b2 = cod b1 holds
a3 . (b2 * b1) = (a3 . b1) * (a3 . b2) ) );
existence
ex b1 being Function of the Morphisms of c1,the Morphisms of c2 st
( ( for b2 being Object of c1 ex b3 being Object of c2 st b1 . (id b2) = id b3 ) & ( for b2 being Morphism of c1 holds
( b1 . (id (dom b2)) = id (cod (b1 . b2)) & b1 . (id (cod b2)) = id (dom (b1 . b2)) ) ) & ( for b2, b3 being Morphism of c1 st dom b3 = cod b2 holds
b1 . (b3 * b2) = (b1 . b2) * (b1 . b3) ) )
proof end;
end;

:: deftheorem Def7 defines Contravariant_Functor OPPCAT_1:def 7 :
for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2 holds
( b3 is Contravariant_Functor of b1,b2 iff ( ( for b4 being Object of b1 ex b5 being Object of b2 st b3 . (id b4) = id b5 ) & ( for b4 being Morphism of b1 holds
( b3 . (id (dom b4)) = id (cod (b3 . b4)) & b3 . (id (cod b4)) = id (dom (b3 . b4)) ) ) & ( for b4, b5 being Morphism of b1 st dom b5 = cod b4 holds
b3 . (b5 * b4) = (b3 . b4) * (b3 . b5) ) ) );

theorem Th31: :: OPPCAT_1:31
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of b1
for b5 being Object of b2 st b3 . (id b4) = id b5 holds
(Obj b3) . b4 = b5
proof end;

theorem Th32: :: OPPCAT_1:32
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of b1 holds b3 . (id b4) = id ((Obj b3) . b4)
proof end;

theorem Th33: :: OPPCAT_1:33
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Morphism of b1 holds
( (Obj b3) . (dom b4) = cod (b3 . b4) & (Obj b3) . (cod b4) = dom (b3 . b4) )
proof end;

theorem Th34: :: OPPCAT_1:34
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4, b5 being Morphism of b1 st dom b5 = cod b4 holds
dom (b3 . b4) = cod (b3 . b5)
proof end;

theorem Th35: :: OPPCAT_1:35
for b1, b2 being Category
for b3 being Functor of b1 opp ,b2 holds /* b3 is Contravariant_Functor of b1,b2
proof end;

theorem Th36: :: OPPCAT_1:36
for b1, b2, b3 being Category
for b4 being Contravariant_Functor of b1,b2
for b5 being Contravariant_Functor of b2,b3 holds b5 * b4 is Functor of b1,b3
proof end;

Lemma25: for b1, b2 being Category
for b3 being Contravariant_Functor of b1 opp ,b2
for b4 being Object of b1 holds (/* b3) . (id b4) = id ((Obj b3) . (b4 opp ))
proof end;

theorem Th37: :: OPPCAT_1:37
for b1, b2 being Category
for b3 being Contravariant_Functor of b1 opp ,b2
for b4 being Object of b1 holds (Obj (/* b3)) . b4 = (Obj b3) . (b4 opp )
proof end;

theorem Th38: :: OPPCAT_1:38
for b1, b2 being Category
for b3 being Contravariant_Functor of b1 opp ,b2
for b4 being Object of (b1 opp ) holds (Obj (/* b3)) . (opp b4) = (Obj b3) . b4
proof end;

Lemma27: for b1, b2 being Category
for b3 being Contravariant_Functor of b1 opp ,b2
for b4 being Object of b1 holds (/* b3) . (id b4) = id ((Obj (/* b3)) . b4)
proof end;

Lemma28: for b1, b2 being Category
for b3 being Contravariant_Functor of b1 opp ,b2
for b4 being Morphism of b1 holds
( (Obj (/* b3)) . (dom b4) = dom ((/* b3) . b4) & (Obj (/* b3)) . (cod b4) = cod ((/* b3) . b4) )
proof end;

theorem Th39: :: OPPCAT_1:39
for b1, b2 being Category
for b3 being Contravariant_Functor of b1 opp ,b2 holds /* b3 is Functor of b1,b2
proof end;

definition
let c1, c2 be Category;
let c3 be Function of the Morphisms of c1,the Morphisms of c2;
func *' c3 -> Function of the Morphisms of (a1 opp ),the Morphisms of a2 means :Def8: :: OPPCAT_1:def 8
for b1 being Morphism of (a1 opp ) holds a4 . b1 = a3 . (opp b1);
existence
ex b1 being Function of the Morphisms of (c1 opp ),the Morphisms of c2 st
for b2 being Morphism of (c1 opp ) holds b1 . b2 = c3 . (opp b2)
proof end;
uniqueness
for b1, b2 being Function of the Morphisms of (c1 opp ),the Morphisms of c2 st ( for b3 being Morphism of (c1 opp ) holds b1 . b3 = c3 . (opp b3) ) & ( for b3 being Morphism of (c1 opp ) holds b2 . b3 = c3 . (opp b3) ) holds
b1 = b2
proof end;
func c3 *' -> Function of the Morphisms of a1,the Morphisms of (a2 opp ) means :Def9: :: OPPCAT_1:def 9
for b1 being Morphism of a1 holds a4 . b1 = (a3 . b1) opp ;
existence
ex b1 being Function of the Morphisms of c1,the Morphisms of (c2 opp ) st
for b2 being Morphism of c1 holds b1 . b2 = (c3 . b2) opp
proof end;
uniqueness
for b1, b2 being Function of the Morphisms of c1,the Morphisms of (c2 opp ) st ( for b3 being Morphism of c1 holds b1 . b3 = (c3 . b3) opp ) & ( for b3 being Morphism of c1 holds b2 . b3 = (c3 . b3) opp ) holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines *' OPPCAT_1:def 8 :
for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2
for b4 being Function of the Morphisms of (b1 opp ),the Morphisms of b2 holds
( b4 = *' b3 iff for b5 being Morphism of (b1 opp ) holds b4 . b5 = b3 . (opp b5) );

:: deftheorem Def9 defines *' OPPCAT_1:def 9 :
for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2
for b4 being Function of the Morphisms of b1,the Morphisms of (b2 opp ) holds
( b4 = b3 *' iff for b5 being Morphism of b1 holds b4 . b5 = (b3 . b5) opp );

theorem Th40: :: OPPCAT_1:40
for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2
for b4 being Morphism of b1 holds (*' b3) . (b4 opp ) = b3 . b4
proof end;

Lemma31: for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Object of (b1 opp ) holds (*' b3) . (id b4) = id ((Obj b3) . (opp b4))
proof end;

theorem Th41: :: OPPCAT_1:41
for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Object of (b1 opp ) holds (Obj (*' b3)) . b4 = (Obj b3) . (opp b4)
proof end;

theorem Th42: :: OPPCAT_1:42
for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Object of b1 holds (Obj (*' b3)) . (b4 opp ) = (Obj b3) . b4
proof end;

Lemma33: for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Object of b1 holds (b3 *' ) . (id b4) = id (((Obj b3) . b4) opp )
proof end;

theorem Th43: :: OPPCAT_1:43
for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Object of b1 holds (Obj (b3 *' )) . b4 = ((Obj b3) . b4) opp
proof end;

Lemma35: for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of (b1 opp ) holds (*' b3) . (id b4) = id ((Obj b3) . (opp b4))
proof end;

theorem Th44: :: OPPCAT_1:44
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of (b1 opp ) holds (Obj (*' b3)) . b4 = (Obj b3) . (opp b4)
proof end;

theorem Th45: :: OPPCAT_1:45
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of b1 holds (Obj (*' b3)) . (b4 opp ) = (Obj b3) . b4
proof end;

Lemma37: for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of b1 holds (b3 *' ) . (id b4) = id (((Obj b3) . b4) opp )
proof end;

theorem Th46: :: OPPCAT_1:46
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of b1 holds (Obj (b3 *' )) . b4 = ((Obj b3) . b4) opp
proof end;

Lemma39: for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2
for b4 being Morphism of (b1 opp ) holds ((*' b3) *' ) . b4 = (b3 . (opp b4)) opp
proof end;

theorem Th47: :: OPPCAT_1:47
for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2
for b4 being Morphism of b1 holds ((*' b3) *' ) . (b4 opp ) = (b3 . b4) opp
proof end;

theorem Th48: :: OPPCAT_1:48
for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2 holds /* (*' b3) = b3
proof end;

theorem Th49: :: OPPCAT_1:49
for b1, b2 being Category
for b3 being Function of the Morphisms of (b1 opp ),the Morphisms of b2 holds *' (/* b3) = b3
proof end;

theorem Th50: :: OPPCAT_1:50
for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2 holds (*' b3) *' = *' (b3 *' )
proof end;

theorem Th51: :: OPPCAT_1:51
for b1 being Category
for b2 being strict Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2 holds (b3 *' ) *' = b3
proof end;

theorem Th52: :: OPPCAT_1:52
for b1 being Category
for b2 being strict Category
for b3 being Function of the Morphisms of b2,the Morphisms of b1 holds *' (*' b3) = b3
proof end;

Lemma42: for b1, b2, b3 being Category
for b4 being Function of the Morphisms of (b1 opp ),the Morphisms of b2
for b5 being Function of the Morphisms of b2,the Morphisms of b3 holds /* (b5 * b4) = b5 * (/* b4)
proof end;

theorem Th53: :: OPPCAT_1:53
for b1, b2, b3 being Category
for b4 being Function of the Morphisms of b1,the Morphisms of b2
for b5 being Function of the Morphisms of b2,the Morphisms of b3 holds *' (b5 * b4) = b5 * (*' b4)
proof end;

theorem Th54: :: OPPCAT_1:54
for b1, b2, b3 being Category
for b4 being Function of the Morphisms of b1,the Morphisms of b2
for b5 being Function of the Morphisms of b2,the Morphisms of b3 holds (b5 * b4) *' = (b5 *' ) * b4
proof end;

theorem Th55: :: OPPCAT_1:55
for b1, b2, b3 being Category
for b4 being Function of the Morphisms of b1,the Morphisms of b2
for b5 being Function of the Morphisms of b2,the Morphisms of b3 holds (*' (b5 * b4)) *' = ((*' b5) *' ) * ((*' b4) *' )
proof end;

Lemma43: for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of (b1 opp ) holds (*' b3) . (id b4) = id ((Obj (*' b3)) . b4)
proof end;

Lemma44: for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Morphism of (b1 opp ) holds
( (Obj (*' b3)) . (dom b4) = dom ((*' b3) . b4) & (Obj (*' b3)) . (cod b4) = cod ((*' b3) . b4) )
proof end;

theorem Th56: :: OPPCAT_1:56
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2 holds *' b3 is Functor of b1 opp ,b2
proof end;

Lemma46: for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of b1 holds (b3 *' ) . (id b4) = id ((Obj (b3 *' )) . b4)
proof end;

Lemma47: for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Morphism of b1 holds
( (Obj (b3 *' )) . (dom b4) = dom ((b3 *' ) . b4) & (Obj (b3 *' )) . (cod b4) = cod ((b3 *' ) . b4) )
proof end;

theorem Th57: :: OPPCAT_1:57
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2 holds b3 *' is Functor of b1,b2 opp
proof end;

Lemma49: for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Object of (b1 opp ) holds (*' b3) . (id b4) = id ((Obj (*' b3)) . b4)
proof end;

Lemma50: for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Morphism of (b1 opp ) holds
( (Obj (*' b3)) . (dom b4) = cod ((*' b3) . b4) & (Obj (*' b3)) . (cod b4) = dom ((*' b3) . b4) )
proof end;

theorem Th58: :: OPPCAT_1:58
for b1, b2 being Category
for b3 being Functor of b1,b2 holds *' b3 is Contravariant_Functor of b1 opp ,b2
proof end;

Lemma52: for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Object of b1 holds (b3 *' ) . (id b4) = id ((Obj (b3 *' )) . b4)
proof end;

Lemma53: for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Morphism of b1 holds
( (Obj (b3 *' )) . (dom b4) = cod ((b3 *' ) . b4) & (Obj (b3 *' )) . (cod b4) = dom ((b3 *' ) . b4) )
proof end;

theorem Th59: :: OPPCAT_1:59
for b1, b2 being Category
for b3 being Functor of b1,b2 holds b3 *' is Contravariant_Functor of b1,b2 opp
proof end;

theorem Th60: :: OPPCAT_1:60
for b1, b2, b3 being Category
for b4 being Contravariant_Functor of b1,b2
for b5 being Functor of b2,b3 holds b5 * b4 is Contravariant_Functor of b1,b3
proof end;

theorem Th61: :: OPPCAT_1:61
for b1, b2, b3 being Category
for b4 being Functor of b1,b2
for b5 being Contravariant_Functor of b2,b3 holds b5 * b4 is Contravariant_Functor of b1,b3
proof end;

theorem Th62: :: OPPCAT_1:62
for b1, b2 being Category
for b3 being Functor of b1,b2
for b4 being Object of b1 holds (Obj ((*' b3) *' )) . (b4 opp ) = ((Obj b3) . b4) opp
proof end;

theorem Th63: :: OPPCAT_1:63
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2
for b4 being Object of b1 holds (Obj ((*' b3) *' )) . (b4 opp ) = ((Obj b3) . b4) opp
proof end;

theorem Th64: :: OPPCAT_1:64
for b1, b2 being Category
for b3 being Functor of b1,b2 holds (*' b3) *' is Functor of b1 opp ,b2 opp
proof end;

theorem Th65: :: OPPCAT_1:65
for b1, b2 being Category
for b3 being Contravariant_Functor of b1,b2 holds (*' b3) *' is Contravariant_Functor of b1 opp ,b2 opp
proof end;

definition
let c1 be Category;
func id* c1 -> Contravariant_Functor of a1,a1 opp equals :: OPPCAT_1:def 10
(id a1) *' ;
coherence
(id c1) *' is Contravariant_Functor of c1,c1 opp
by Th59;
func *id c1 -> Contravariant_Functor of a1 opp ,a1 equals :: OPPCAT_1:def 11
*' (id a1);
coherence
*' (id c1) is Contravariant_Functor of c1 opp ,c1
by Th58;
end;

:: deftheorem Def10 defines id* OPPCAT_1:def 10 :
for b1 being Category holds id* b1 = (id b1) *' ;

:: deftheorem Def11 defines *id OPPCAT_1:def 11 :
for b1 being Category holds *id b1 = *' (id b1);

theorem Th66: :: OPPCAT_1:66
for b1 being Category
for b2 being Morphism of b1 holds (id* b1) . b2 = b2 opp
proof end;

theorem Th67: :: OPPCAT_1:67
for b1 being Category
for b2 being Object of b1 holds (Obj (id* b1)) . b2 = b2 opp
proof end;

theorem Th68: :: OPPCAT_1:68
for b1 being Category
for b2 being Morphism of (b1 opp ) holds (*id b1) . b2 = opp b2
proof end;

theorem Th69: :: OPPCAT_1:69
for b1 being Category
for b2 being Object of (b1 opp ) holds (Obj (*id b1)) . b2 = opp b2
proof end;

theorem Th70: :: OPPCAT_1:70
for b1, b2 being Category
for b3 being Function of the Morphisms of b1,the Morphisms of b2 holds
( *' b3 = b3 * (*id b1) & b3 *' = (id* b2) * b3 )
proof end;