reserve B,C,D for Category;

theorem
  for c being Object of C holds c opp is initial iff c is terminal
proof
  let c be Object of C;
  thus c opp is initial implies c is terminal
  proof
    assume
A1: c opp is initial;
    let b be Object of C;
    consider f being Morphism of c opp,b opp such that
A2: for g being Morphism of c opp,b opp holds f = g by A1;
A3: opp(b opp) = b & opp(c opp) = c;
A4: Hom(c opp,b opp)<>{} by A1;
    reconsider f9 = opp f as Morphism of b,c;
    thus
A5: Hom(b,c)<>{} by A3,Th5,A4;
    take f9;
    let g be Morphism of b,c;
     g opp = f by A2;
    hence g = f by A5,Def6
        .= f9 by Def7,A4;
  end;
  assume
A6: c is terminal;
  let b be Object of C opp;
  consider f being Morphism of opp b,c such that
A7: for g being Morphism of opp b, c holds f = g by A6;
A8: (opp b) opp = b;
A9: Hom(opp b,c)<>{} by A6;
  reconsider f9 = f opp as Morphism of c opp,b;
 thus
A10: Hom(c opp,b)<>{} by A8,Th4,A9;
  take f9;
  let g be Morphism of c opp,b;
  opp g is Morphism of opp b,opp (c opp) by A10,Th13;
  hence g = f by A7
        .= f9 by Def6,A9;
end;
