reserve C for CategoryStr;
reserve f,f1,f2,f3 for morphism of C;
reserve g1,g2 for morphism of C opp;

theorem Th16:
  for g being morphism of the CategoryStr of C st f = g
  holds f is left_identity iff g is left_identity
  proof
    let g be morphism of the CategoryStr of C;
    assume
A1: f = g;
    hereby
      assume
A2:  f is left_identity;
      for g1 being morphism of the CategoryStr of C st g |> g1
      holds g (*) g1 = g1
      proof
        let g1 be morphism of the CategoryStr of C;
        reconsider f1 = g1 as morphism of C;
        assume g |> g1;
        then
A3:     f |> f1 by A1;
        then f (*) f1 = f1 by A2;
        hence g (*) g1 = g1 by A1,A3,Th11;
      end;
      hence g is left_identity;
    end;
    assume
A4: g is left_identity;
    for f2 being morphism of C st f |> f2 holds f (*) f2 = f2
    proof
      let f2 be morphism of C;
      reconsider g2 = f2 as morphism of the CategoryStr of C;
      assume
A5:   f |> f2;
      then g |> g2 by A1;
      then g (*) g2 = g2 by A4;
      hence f (*) f2 = f2 by A1,A5,Th11;
    end;
    hence f is left_identity;
  end;
