reserve X,Y for set;
reserve Z for non empty set;

theorem
  for C1, C2 being non empty AltCatStr, F being Covariant FunctorStr
over C1,C2 holds F is full iff for o1,o2 being Object of C1 holds Morph-Map(F,
  o1,o2) is onto
proof
  let C1, C2 be non empty AltCatStr, F be Covariant FunctorStr over C1,C2;
  set I = [:the carrier of C1, the carrier of C1:];
  hereby
    assume F is full;
    then consider
    f being ManySortedFunction of (the Arrows of C1), (the Arrows of
    C2)*the ObjectMap of F such that
A1: f = the MorphMap of F and
A2: f is "onto";
    let o1,o2 be Object of C1;
A3: [o1,o2] in I by ZFMISC_1:87;
    then
A4: [o1,o2] in dom(the ObjectMap of F) by FUNCT_2:def 1;
    rng(f.[o1,o2]) = ((the Arrows of C2)*the ObjectMap of F).[o1,o2] by A2,A3;
    then
    rng(Morph-Map(F,o1,o2)) = (the Arrows of C2).((the ObjectMap of F).(o1
    ,o2)) by A1,A4,FUNCT_1:13
      .= (the Arrows of C2).(F.o1,F.o2) by FUNCTOR0:22
      .= <^F.o1,F.o2^> by ALTCAT_1:def 1;
    hence Morph-Map(F,o1,o2) is onto by FUNCT_2:def 3;
  end;
  ex I29 being non empty set, B9 being ManySortedSet of I29, f9 being
  Function of I,I29 st the ObjectMap of F = f9 & (the Arrows of C2) = B9 & the
MorphMap of F is ManySortedFunction of (the Arrows of C1), B9* f9 by
FUNCTOR0:def 3;
  then reconsider
  f = the MorphMap of F as ManySortedFunction of (the Arrows of C1)
  , (the Arrows of C2)*the ObjectMap of F;
  assume
A5: for o1,o2 being Object of C1 holds Morph-Map(F,o1,o2) is onto;
  f is "onto"
  proof
    let i be set;
    assume i in I;
    then consider o1,o2 being object such that
A6: o1 in the carrier of C1 & o2 in the carrier of C1 and
A7: i = [o1,o2] by ZFMISC_1:84;
    reconsider o1, o2 as Object of C1 by A6;
    [o1,o2] in I by ZFMISC_1:87;
    then
A8: [o1,o2] in dom(the ObjectMap of F) by FUNCT_2:def 1;
    Morph-Map(F,o1,o2) is onto by A5;
    then rng(Morph-Map(F,o1,o2)) = <^F.o1,F.o2^> by FUNCT_2:def 3
      .= (the Arrows of C2).(F.o1,F.o2) by ALTCAT_1:def 1
      .= (the Arrows of C2).((the ObjectMap of F).(o1,o2)) by FUNCTOR0:22
      .= ((the Arrows of C2)*the ObjectMap of F).(o1,o2) by A8,FUNCT_1:13;
    hence thesis by A7;
  end;
  hence
  ex f being ManySortedFunction of (the Arrows of C1), (the Arrows of C2)
  *the ObjectMap of F st f = the MorphMap of F & f is "onto";
end;
