the carrier of B c= the carrier of A
by ALTCAT_2:def 11;
then reconsider CC = [:the carrier of B,the carrier of B:] as Subset of [:the carrier of A,the carrier of A:] by ZFMISC_1:119;
set OM = id [:the carrier of B,the carrier of B:];
id [:the carrier of B,the carrier of B:] = incl CC
;
then reconsider OM = id [:the carrier of B,the carrier of B:] as bifunction of the carrier of B,the carrier of A ;
set MM = id the Arrows of B;
id the Arrows of B is MSUnTrans of OM,the Arrows of B,the Arrows of A
proof
per cases
( [:the carrier of A,the carrier of A:] <> {} or [:the carrier of A,the carrier of A:] = {} )
;
:: according to FUNCTOR0:def 4case
[:the carrier of A,the carrier of A:] <> {}
;
:: thesis: ex I2' being non empty set ex B' being ManySortedSet of ex f' being Function of [:the carrier of B,the carrier of B:],I2' st
( OM = f' & the Arrows of A = B' & id the Arrows of B is ManySortedFunction of the Arrows of B,B' * f' )then reconsider I2' =
[:the carrier of A,the carrier of A:] as non
empty set ;
reconsider B' = the
Arrows of
A as
ManySortedSet of ;
reconsider f' =
OM as
Function of
[:the carrier of B,the carrier of B:],
I2' ;
take
I2'
;
:: thesis: ex B' being ManySortedSet of ex f' being Function of [:the carrier of B,the carrier of B:],I2' st
( OM = f' & the Arrows of A = B' & id the Arrows of B is ManySortedFunction of the Arrows of B,B' * f' )take
B'
;
:: thesis: ex f' being Function of [:the carrier of B,the carrier of B:],I2' st
( OM = f' & the Arrows of A = B' & id the Arrows of B is ManySortedFunction of the Arrows of B,B' * f' )take
f'
;
:: thesis: ( OM = f' & the Arrows of A = B' & id the Arrows of B is ManySortedFunction of the Arrows of B,B' * f' )thus
(
OM = f' & the
Arrows of
A = B' )
;
:: thesis: id the Arrows of B is ManySortedFunction of the Arrows of B,B' * f'thus
id the
Arrows of
B is
ManySortedFunction of the
Arrows of
B,
B' * f'
:: thesis: verumproof
let i be
set ;
:: according to PBOOLE:def 18 :: thesis: ( not i in [:the carrier of B,the carrier of B:] or (id the Arrows of B) . i is Element of bool [:(the Arrows of B . i),((B' * f') . i):] )
assume A1:
i in [:the carrier of B,the carrier of B:]
;
:: thesis: (id the Arrows of B) . i is Element of bool [:(the Arrows of B . i),((B' * f') . i):]
then A2:
(id the Arrows of B) . i is
Function of
(the Arrows of B . i),
(the Arrows of B . i)
by PBOOLE:def 18;
A3:
the
Arrows of
B cc= the
Arrows of
A
by ALTCAT_2:def 11;
(B' * f') . i =
B' . (f' . i)
by A1, FUNCT_2:21
.=
the
Arrows of
A . i
by A1, FUNCT_1:35
;
then
the
Arrows of
B . i c= (B' * f') . i
by A1, A3, ALTCAT_2:def 2;
hence
(id the Arrows of B) . i is
Element of
bool [:(the Arrows of B . i),((B' * f') . i):]
by A2, FUNCT_2:9;
:: thesis: verum
end; end; end;
end;
then reconsider MM = id the Arrows of B as MSUnTrans of OM,the Arrows of B,the Arrows of A ;
take
FunctorStr(# OM,MM #)
; :: thesis: ( the ObjectMap of FunctorStr(# OM,MM #) = id [:the carrier of B,the carrier of B:] & the MorphMap of FunctorStr(# OM,MM #) = id the Arrows of B )
thus
( the ObjectMap of FunctorStr(# OM,MM #) = id [:the carrier of B,the carrier of B:] & the MorphMap of FunctorStr(# OM,MM #) = id the Arrows of B )
; :: thesis: verum