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

theorem Th17:
  C is with_left_identities iff the CategoryStr of C is with_left_identities
  proof
    hereby
      assume
A1:   C is with_left_identities;
      for g1 being morphism of the CategoryStr of C st
      g1 in the carrier of the CategoryStr of C holds
      ex g being morphism of the CategoryStr of C st
      g |> g1 & g is left_identity
      proof
        let g1 be morphism of the CategoryStr of C;
        reconsider f1 = g1 as morphism of C;
        assume g1 in the carrier of the CategoryStr of C;
        then consider f be morphism of C such that
A2:     f |> f1 & f is left_identity by A1;
        reconsider g = f as morphism of the CategoryStr of C;
        take g;
        thus g |> g1 by A2;
        thus g is left_identity by A2,Th16;
      end;
      hence the CategoryStr of C is with_left_identities;
    end;
    assume
A3: the CategoryStr of C is with_left_identities;
    for f1 being morphism of C st f1 in the carrier of C holds
    ex f being morphism of C st f |> f1 & f is left_identity
    proof
      let f1 be morphism of C;
      reconsider g1 = f1 as morphism of the CategoryStr of C;
      assume f1 in the carrier of C;
      then consider g be morphism of the CategoryStr of C such that
A4:   g |> g1 & g is left_identity by A3;
      reconsider f = g as morphism of C;
      take f;
      thus f |> f1 by A4;
      thus f is left_identity by A4,Th16;
    end;
    hence C is with_left_identities;
  end;
