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

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