
theorem Th37:
  for O being ordinal number
  ex C being strict preorder category st Ob C = O
  & (for o1,o2 being Object of C st o1 in o2 holds Hom(o1,o2) = {[o1,o2]})
  & RelOb C = RelIncl O
  & Mor C = O \/ {[o1,o2] where o1,o2 is Element of O: o1 in o2}
  proof
    let O be ordinal number;
    per cases;
    suppose
A1:   O is empty;
      set C = the strict empty category;
      take C;
      thus Ob C = O by A1;
      for x being object holds
      not x in {[o1,o2] where o1,o2 is Element of O: o1 in o2}
      proof
        let x be object;
        assume x in {[o1,o2] where o1,o2 is Element of O: o1 in o2};
        then consider o1,o2 be Element of O such that
A2:     x = [o1,o2] & o1 in o2;
        thus contradiction by A2,A1,SUBSET_1:def 1;
      end;
      hence thesis by A1,SUBSET_1:def 1,XBOOLE_0:def 1;
    end;
    suppose
A3:   O is non empty;
      set X1 = {[o1,o2] where o1,o2 is Element of O: o1 in o2};
      set X = O \/ X1;
      set F1 = {[[o1,o1],o1] where o1 is Element of O: not contradiction};
      set F2 = {[[o2,[o1,o2]],[o1,o2]] where o1,o2 is Element of O: o1 in o2};
      set F3 = {[[[o1,o2],o1],[o1,o2]] where o1,o2 is Element of O: o1 in o2};
      set F4 = {[[[o2,o3],[o1,o2]],[o1,o3]] where o1,o2,o3 is Element of O:
      o1 in o2 & o2 in o3};
      set F = F1 \/ F2 \/ F3 \/ F4;
A4:  for x being object st x in F holds
      (ex o1 being Element of O st x = [[o1,o1],o1]) or
      (ex o1,o2 being Element of O st o1 in o2 &
          (x=[[o2,[o1,o2]],[o1,o2]] or x=[[[o1,o2],o1],[o1,o2]])) or
      (ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          x = [[[o2,o3],[o1,o2]],[o1,o3]])
      proof
        let x be object;
        assume
A5:    x in F;
        per cases by A5,XBOOLE_0:def 3;
        suppose
A6:       x in F1 \/ F2 \/ F3;
          per cases by A6,XBOOLE_0:def 3;
          suppose
A7:         x in F1 \/ F2;
            per cases by A7,XBOOLE_0:def 3;
            suppose x in F1;
              then consider o1 be Element of O such that
A8:           x = [[o1,o1],o1];
              thus thesis by A8;
            end;
            suppose x in F2;
              then consider o1,o2 be Element of O such that
A9:           x=[[o2,[o1,o2]],[o1,o2]] & o1 in o2;
              thus thesis by A9;
            end;
          end;
          suppose x in F3;
            then consider o1,o2 be Element of O such that
A10:         x = [[[o1,o2],o1],[o1,o2]] & o1 in o2;
            thus thesis by A10;
          end;
        end;
        suppose x in F4;
          then consider o1,o2,o3 be Element of O such that
A11:       x = [[[o2,o3],[o1,o2]],[o1,o3]] & o1 in o2 & o2 in o3;
          thus thesis by A11;
        end;
      end;
A12:   for x,y1,y2 being object st [x,y1] in F & [x,y2] in F holds y1 = y2
      proof
        let x,y1,y2 be object;
        assume
A13:     [x,y1] in F;
        per cases by A4,A13;
        suppose ex o1 being Element of O st [x,y1] = [[o1,o1],o1];
          then consider o1 be Element of O such that
A14:       [x,y1] = [[o1,o1],o1];
A15:       x = [o1,o1] & y1 = o1 by A14,XTUPLE_0:1;
          assume
A16:       [x,y2] in F;
          per cases by A4,A16;
          suppose ex o1 being Element of O st [x,y2] = [[o1,o1],o1];
            then consider o11 be Element of O such that
A17:        [x,y2] = [[o11,o11],o11];
            x = [o11,o11] & y2 = o11 by A17,XTUPLE_0:1;
            hence thesis by A15,XTUPLE_0:1;
          end;
          suppose ex o1,o2 being Element of O st o1 in o2 &
            ([x,y2]=[[o2,[o1,o2]],[o1,o2]] or [x,y2]=[[[o1,o2],o1],[o1,o2]]);
            then consider o11,o12 be Element of O such that
A18:        o11 in o12 & ([x,y2]=[[o12,[o11,o12]],[o11,o12]] or
            [x,y2]=[[[o11,o12],o11],[o11,o12]]);
            x = [o12,[o11,o12]] or x = [[o11,o12],o11] by A18,XTUPLE_0:1;
            hence thesis by A15,XTUPLE_0:1;
          end;
          suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
            [x,y2] = [[[o2,o3],[o1,o2]],[o1,o3]];
            then consider o11,o12,o13 be Element of O such that
A19:        o11 in o12 & o12 in o13 & [x,y2]=[[[o12,o13],[o11,o12]],[o11,o13]];
            x = [[o12,o13],[o11,o12]] by A19,XTUPLE_0:1;
            hence thesis by A15,XTUPLE_0:1;
          end;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          ([x,y1]=[[o2,[o1,o2]],[o1,o2]] or [x,y1]=[[[o1,o2],o1],[o1,o2]]);
          then consider o1,o2 be Element of O such that
A20:       o1 in o2 &
          ([x,y1]=[[o2,[o1,o2]],[o1,o2]] or [x,y1]=[[[o1,o2],o1],[o1,o2]]);
          per cases by A20;
          suppose [x,y1]=[[o2,[o1,o2]],[o1,o2]];
            then
A21:        x = [o2,[o1,o2]] & y1 = [o1,o2] by XTUPLE_0:1;
            assume
A22:         [x,y2] in F;
            per cases by A4,A22;
            suppose ex o1 being Element of O st [x,y2] = [[o1,o1],o1];
              then consider o11 be Element of O such that
A23:          [x,y2] = [[o11,o11],o11];
              x = [o11,o11] by A23,XTUPLE_0:1;
              hence thesis by A21,XTUPLE_0:1;
            end;
            suppose ex o1,o2 being Element of O st o1 in o2 &
              ([x,y2]=[[o2,[o1,o2]],[o1,o2]] or [x,y2]=[[[o1,o2],o1],[o1,o2]]);
              then consider o11,o12 be Element of O such that
A24:          o11 in o12 & ([x,y2]=[[o12,[o11,o12]],[o11,o12]] or
              [x,y2]=[[[o11,o12],o11],[o11,o12]]);
              per cases by A24;
              suppose [x,y2]=[[o12,[o11,o12]],[o11,o12]];
                then x = [o12,[o11,o12]] & y2 = [o11,o12] by XTUPLE_0:1;
                hence thesis by A21,XTUPLE_0:1;
              end;
              suppose [x,y2]=[[[o11,o12],o11],[o11,o12]];
                then x = [[o11,o12],o11] by XTUPLE_0:1;
                hence thesis by A21,XTUPLE_0:1;
              end;
            end;
            suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
              [x,y2] = [[[o2,o3],[o1,o2]],[o1,o3]];
              then consider o11,o12,o13 be Element of O such that
A25:          o11 in o12 & o12 in o13 &
              [x,y2]=[[[o12,o13],[o11,o12]],[o11,o13]];
              x = [[o12,o13],[o11,o12]] by A25,XTUPLE_0:1;
              hence thesis by A21,XTUPLE_0:1;
            end;
          end;
          suppose [x,y1]=[[[o1,o2],o1],[o1,o2]];
            then
A26:        x = [[o1,o2],o1] & y1 = [o1,o2] by XTUPLE_0:1;
            assume
A27:         [x,y2] in F;
            per cases by A4,A27;
            suppose ex o1 being Element of O st [x,y2] = [[o1,o1],o1];
              then consider o11 be Element of O such that
A28:          [x,y2] = [[o11,o11],o11];
              x = [o11,o11] by A28,XTUPLE_0:1;
              hence thesis by A26,XTUPLE_0:1;
            end;
            suppose ex o1,o2 being Element of O st o1 in o2 &
              ([x,y2]=[[o2,[o1,o2]],[o1,o2]] or [x,y2]=[[[o1,o2],o1],[o1,o2]]);
              then consider o11,o12 be Element of O such that
A29:          o11 in o12 & ([x,y2]=[[o12,[o11,o12]],[o11,o12]] or
              [x,y2]=[[[o11,o12],o11],[o11,o12]]);
              per cases by A29;
              suppose [x,y2]=[[o12,[o11,o12]],[o11,o12]];
                then x = [o12,[o11,o12]] by XTUPLE_0:1;
                hence thesis by A26,XTUPLE_0:1;
              end;
              suppose [x,y2]=[[[o11,o12],o11],[o11,o12]];
                then
A30:            x = [[o11,o12],o11] & y2 = [o11,o12] by XTUPLE_0:1;
                thus thesis by A26,A30,XTUPLE_0:1;
              end;
            end;
            suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
              [x,y2] = [[[o2,o3],[o1,o2]],[o1,o3]];
              then consider o11,o12,o13 be Element of O such that
A31:          o11 in o12 & o12 in o13 &
              [x,y2]=[[[o12,o13],[o11,o12]],[o11,o13]];
              x = [[o12,o13],[o11,o12]] by A31,XTUPLE_0:1;
              hence thesis by A26,XTUPLE_0:1;
            end;
          end;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          [x,y1] = [[[o2,o3],[o1,o2]],[o1,o3]];
          then consider o1,o2,o3 be Element of O such that
A32:      o1 in o2 & o2 in o3 & [x,y1] = [[[o2,o3],[o1,o2]],[o1,o3]];
A33:      x = [[o2,o3],[o1,o2]] & y1 = [o1,o3] by A32,XTUPLE_0:1;
          assume
A34:       [x,y2] in F;
          per cases by A4,A34;
          suppose ex o1 being Element of O st [x,y2] = [[o1,o1],o1];
            then consider o11 be Element of O such that
A35:        [x,y2] = [[o11,o11],o11];
            x = [o11,o11] by A35,XTUPLE_0:1;
            hence thesis by A33,XTUPLE_0:1;
          end;
          suppose ex o1,o2 being Element of O st o1 in o2 &
            ([x,y2]=[[o2,[o1,o2]],[o1,o2]] or [x,y2]=[[[o1,o2],o1],[o1,o2]]);
            then consider o11,o12 be Element of O such that
A36:        o11 in o12 & ([x,y2]=[[o12,[o11,o12]],[o11,o12]] or
            [x,y2]=[[[o11,o12],o11],[o11,o12]]);
            x = [o12,[o11,o12]] or x = [[o11,o12],o11] by A36,XTUPLE_0:1;
            hence thesis by A33,XTUPLE_0:1;
          end;
          suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
            [x,y2] = [[[o2,o3],[o1,o2]],[o1,o3]];
            then consider o11,o12,o13 be Element of O such that
A37:        o11 in o12 & o12 in o13 & [x,y2]=[[[o12,o13],[o11,o12]],[o11,o13]];
            x = [[o12,o13],[o11,o12]] & y2 = [o11,o13] by A37,XTUPLE_0:1;
            then [o1,o2] = [o11,o12] & [o2,o3] = [o12,o13] by A33,XTUPLE_0:1;
            then o1 = o11 & o2 = o12 & o3 = o13 by XTUPLE_0:1;
            hence thesis by A32,XTUPLE_0:1,A37;
          end;
        end;
      end;
A38:  for o1,o2 being Element of O st o1 in o2 holds [o1,o2] in X
      proof
        let o1,o2 be Element of O;
        assume o1 in o2;
        then [o1,o2] in X1;
        hence [o1,o2] in X by XBOOLE_0:def 3;
      end;
      for x being object st x in F holds x in [:[:X,X:],X:]
      proof
        let x be object;
        assume
A39:     x in F;
        per cases by A39,A4;
        suppose ex o1 being Element of O st x = [[o1,o1],o1];
          then consider o1 be Element of O such that
A40:       x = [[o1,o1],o1];
A41:       o1 in X by A3,XBOOLE_0:def 3;
          then [o1,o1] in [:X,X:] by ZFMISC_1:def 2;
          hence thesis by A40,A41,ZFMISC_1:def 2;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          (x=[[o2,[o1,o2]],[o1,o2]] or x=[[[o1,o2],o1],[o1,o2]]);
          then consider o1,o2 be Element of O such that
A42:       o1 in o2 & (x=[[o2,[o1,o2]],[o1,o2]] or x=[[[o1,o2],o1],[o1,o2]]);
          per cases by A42;
          suppose
A43:        x=[[o2,[o1,o2]],[o1,o2]];
A44:        o2 in X & [o1,o2] in X by A42,A38,A3,XBOOLE_0:def 3;
            then [o2,[o1,o2]] in [:X,X:] by ZFMISC_1:def 2;
            hence thesis by A43,A44,ZFMISC_1:def 2;
          end;
          suppose
A45:        x=[[[o1,o2],o1],[o1,o2]];
A46:        o1 in X & [o1,o2] in X by A42,A38,A3,XBOOLE_0:def 3;
            then [[o1,o2],o1] in [:X,X:] by ZFMISC_1:def 2;
            hence thesis by A45,A46,ZFMISC_1:def 2;
          end;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          x = [[[o2,o3],[o1,o2]],[o1,o3]];
          then consider o1,o2,o3 be Element of O such that
A47:      o1 in o2 & o2 in o3 & x = [[[o2,o3],[o1,o2]],[o1,o3]];
A48:      [o1,o2] in X & [o2,o3] in X & [o1,o3] in X by A47,A38,ORDINAL1:10;
          then [[o2,o3],[o1,o2]] in [:X,X:] by ZFMISC_1:def 2;
          hence thesis by A47,A48,ZFMISC_1:def 2;
        end;
      end;
      then reconsider F as PartFunc of [:X,X:],X
      by A12,TARSKI:def 3,FUNCT_1:def 1;
      set C = CategoryStr(# X, F #);
      reconsider C as strict non empty CategoryStr by A3;
A49:  for f being morphism of C holds
      (f is Element of O) or
      (ex o1,o2 being Element of O st f = [o1,o2] & o1 in o2)
      proof
        let f be morphism of C;
        f in Mor(C);
        then
A50:    f in the carrier of C by CAT_6:def 1;
        per cases by A50,XBOOLE_0:def 3;
        suppose f in O;
          hence thesis;
        end;
        suppose f in X1;
          then consider o1,o2 be Element of O such that
A51:       f = [o1,o2] & o1 in o2;
          thus thesis by A51;
        end;
      end;
A52: for o being Element of O holds o is morphism of C
      proof
        let o be Element of O;
        o in X by A3,XBOOLE_0:def 3;
        hence thesis by CAT_6:def 1;
      end;
A53:  for o1,o2 being Element of O st o1 in o2 holds
      ex f being morphism of C st f = [o1,o2]
      proof
        let o1,o2 be Element of O;
        assume o1 in o2;
        then [o1,o2] in X by A38;
        then reconsider f = [o1,o2] as morphism of C by CAT_6:def 1;
        take f;
        thus thesis;
      end;
A54: for x being object st
      (ex o1 being Element of O st x = [[o1,o1],o1]) or
      (ex o1,o2 being Element of O st o1 in o2 &
          (x=[[o2,[o1,o2]],[o1,o2]] or x=[[[o1,o2],o1],[o1,o2]])) or
      (ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          x = [[[o2,o3],[o1,o2]],[o1,o3]]) holds x in F
      proof
        let x be object;
        assume
A55:     (ex o1 being Element of O st x = [[o1,o1],o1]) or
        (ex o1,o2 being Element of O st o1 in o2 & (x=[[o2,[o1,o2]],[o1,o2]]
        or x=[[[o1,o2],o1],[o1,o2]])) or
        (ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
        x = [[[o2,o3],[o1,o2]],[o1,o3]]);
        per cases by A55;
        suppose ex o1 being Element of O st x = [[o1,o1],o1];
          then x in F1;
          then x in F1 \/ F2 by XBOOLE_0:def 3;
          then x in F1 \/ F2 \/ F3 by XBOOLE_0:def 3;
          hence thesis by XBOOLE_0:def 3;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          (x=[[o2,[o1,o2]],[o1,o2]] or x=[[[o1,o2],o1],[o1,o2]]);
          then x in F2 or x in F3;
          then x in F2 \/ F3 by XBOOLE_0:def 3;
          then x in F1 \/ (F2 \/ F3) by XBOOLE_0:def 3;
          then x in F1 \/ F2 \/ F3 by XBOOLE_1:4;
          hence thesis by XBOOLE_0:def 3;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          x = [[[o2,o3],[o1,o2]],[o1,o3]];
          then x in F4;
          hence thesis by XBOOLE_0:def 3;
        end;
      end;
A56:  for o1 being Element of O, f1,f2 being morphism of C
      st f1 = o1 & f2 = o1 holds f1 |> f2 & f1(*)f2 = o1
      proof
        let o1 be Element of O;
        let f1,f2 be morphism of C;
        assume
A57:     f1 = o1 & f2 = o1;
A58:    [[f1,f2],f2] in F by A57,A54;
        then
A59:   [f1,f2] in dom the composition of C by XTUPLE_0:def 12;
        hence f1 |> f2 by CAT_6:def 2;
        thus f1(*)f2 = (the composition of C).(f1,f2) by A59,CAT_6:def 2,def 3
        .= F.[f1,f2] by BINOP_1:def 1
        .= o1 by A57,A58,FUNCT_1:1;
      end;
A60:  for o1,o2 being Element of O, f1,f2 being morphism of C
      st f1 = o2 & f2 = [o1,o2] & o1 in o2
      holds f1 |> f2 & f1(*)f2 = [o1,o2]
      proof
        let o1,o2 be Element of O;
        let f1,f2 be morphism of C;
        assume
A61:     f1 = o2 & f2 = [o1,o2];
        assume
A62:     o1 in o2;
A63:    [[f1,f2],f2] in F by A61,A62,A54;
        then
A64:   [f1,f2] in dom the composition of C by XTUPLE_0:def 12;
        hence f1 |> f2 by CAT_6:def 2;
        thus f1(*)f2 = (the composition of C).(f1,f2) by A64,CAT_6:def 2,def 3
        .= F.[f1,f2] by BINOP_1:def 1
        .= [o1,o2] by A61,A63,FUNCT_1:1;
      end;

A65:  for o1,o2 being Element of O, f1,f2 being morphism of C
      st f1 = [o1,o2] & f2 = o1 & o1 in o2
      holds f1 |> f2 & f1(*)f2 = [o1,o2]
      proof
        let o1,o2 be Element of O;
        let f1,f2 be morphism of C;
        assume
A66:     f1 = [o1,o2] & f2 = o1;
        assume
A67:     o1 in o2;
A68:    [[f1,f2],f1] in F by A66,A67,A54;
        then
A69:   [f1,f2] in dom the composition of C by XTUPLE_0:def 12;
        hence f1 |> f2 by CAT_6:def 2;
        thus f1(*)f2 = (the composition of C).(f1,f2) by A69,CAT_6:def 2,def 3
        .= F.[f1,f2] by BINOP_1:def 1
        .= [o1,o2] by A66,A68,FUNCT_1:1;
      end;
A70:  for o1,o2,o3 being Element of O, f1,f2 being morphism of C
      st f1 = [o2,o3] & f2 = [o1,o2] & o1 in o2 & o2 in o3
      holds f1 |> f2 & f1(*)f2 = [o1,o3]
      proof
        let o1,o2,o3 be Element of O;
        let f1,f2 be morphism of C;
        assume
A71:     f1 = [o2,o3] & f2 = [o1,o2];
        assume
A72:     o1 in o2 & o2 in o3;
        then consider f3 be morphism of C such that
A73:    f3 = [o1,o3] by A53,ORDINAL1:10;
A74:    [[f1,f2],f3] in F by A71,A72,A73,A54;
        then
A75:   [f1,f2] in dom the composition of C by XTUPLE_0:def 12;
        hence f1 |> f2 by CAT_6:def 2;
        thus f1(*)f2 = (the composition of C).(f1,f2) by A75,CAT_6:def 2,def 3
        .= F.[f1,f2] by BINOP_1:def 1
        .= [o1,o3] by A73,A74,FUNCT_1:1;
      end;
A76:  for o1,o2 being Element of O, f1,f2 being morphism of C
      st f1 = o1 & f2 = o2 & f1 |> f2 holds o1 = o2
      proof
        let o1,o2 be Element of O;
        let f1,f2 be morphism of C;
        assume
A77:    f1 = o1 & f2 = o2;
        assume f1 |> f2;
        then [f1,f2] in dom the composition of C by CAT_6:def 2;
        then consider y be object such that
A78:     [[f1,f2],y] in F by XTUPLE_0:def 12;
        per cases by A78,A4;
        suppose ex o1 being Element of O st [[f1,f2],y] = [[o1,o1],o1];
          then consider o11 be Element of O such that
A79:       [[f1,f2],y] = [[o11,o11],o11];
          [f1,f2] = [o11,o11] by A79,XTUPLE_0:1;
          then f1 = o11 & f2 = o11 by XTUPLE_0:1;
          hence thesis by A77;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          ([[f1,f2],y]=[[o2,[o1,o2]],[o1,o2]] or
          [[f1,f2],y]=[[[o1,o2],o1],[o1,o2]]);
          then consider o11,o12 be Element of O such that
A80:       o11 in o12 & ([[f1,f2],y]=[[o12,[o11,o12]],[o11,o12]] or
          [[f1,f2],y]=[[[o11,o12],o11],[o11,o12]]);
          [f1,f2] = [o12,[o11,o12]] or [f1,f2] = [[o11,o12],o11]
          by A80,XTUPLE_0:1;
          hence thesis by A77,XTUPLE_0:1;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          [[f1,f2],y] = [[[o2,o3],[o1,o2]],[o1,o3]];
          then consider o1,o2,o3 be Element of O such that
A81:       o1 in o2 & o2 in o3 & [[f1,f2],y] = [[[o2,o3],[o1,o2]],[o1,o3]];
          [f1,f2] = [[o2,o3],[o1,o2]] by A81,XTUPLE_0:1;
          hence thesis by A77,XTUPLE_0:1;
        end;
      end;
A82:  for o1,o2,o3 being Element of O, f1,f2 being morphism of C
      st f1 = o1 & f2 = [o2,o3] & f1 |> f2 holds o1 = o3
      proof
        let o1,o2,o3 be Element of O;
        let f1,f2 be morphism of C;
        assume
A83:    f1 = o1 & f2 = [o2,o3];
        assume f1 |> f2;
        then [f1,f2] in dom the composition of C by CAT_6:def 2;
        then consider y be object such that
A84:     [[f1,f2],y] in F by XTUPLE_0:def 12;
        per cases by A84,A4;
        suppose ex o1 being Element of O st [[f1,f2],y] = [[o1,o1],o1];
          then consider o11 be Element of O such that
A85:       [[f1,f2],y] = [[o11,o11],o11];
          [f1,f2] = [o11,o11] by A85,XTUPLE_0:1;
          hence thesis by A83,XTUPLE_0:1;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          ([[f1,f2],y]=[[o2,[o1,o2]],[o1,o2]] or
          [[f1,f2],y]=[[[o1,o2],o1],[o1,o2]]);
          then consider o11,o12 be Element of O such that
A86:       o11 in o12 & ([[f1,f2],y]=[[o12,[o11,o12]],[o11,o12]] or
          [[f1,f2],y]=[[[o11,o12],o11],[o11,o12]]);
          per cases by A86,XTUPLE_0:1;
          suppose [f1,f2] = [o12,[o11,o12]];
            then f1 = o12 & f2 = [o11,o12] by XTUPLE_0:1;
            hence thesis by A83,XTUPLE_0:1;
          end;
          suppose [f1,f2] = [[o11,o12],o11];
            hence thesis by A83,XTUPLE_0:1;
          end;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          [[f1,f2],y] = [[[o2,o3],[o1,o2]],[o1,o3]];
          then consider o1,o2,o3 be Element of O such that
A87:       o1 in o2 & o2 in o3 & [[f1,f2],y] = [[[o2,o3],[o1,o2]],[o1,o3]];
          [f1,f2] = [[o2,o3],[o1,o2]] by A87,XTUPLE_0:1;
          hence thesis by A83,XTUPLE_0:1;
        end;
      end;
A88:  for o1,o2,o3 being Element of O, f1,f2 being morphism of C
      st f1 = [o1,o2] & f2 = o3 & f1 |> f2 holds o1 = o3
      proof
        let o1,o2,o3 be Element of O;
        let f1,f2 be morphism of C;
        assume
A89:    f1 = [o1,o2] & f2 = o3;
        assume f1 |> f2;
        then [f1,f2] in dom the composition of C by CAT_6:def 2;
        then consider y be object such that
A90:     [[f1,f2],y] in F by XTUPLE_0:def 12;
        per cases by A90,A4;
        suppose ex o1 being Element of O st [[f1,f2],y] = [[o1,o1],o1];
          then consider o11 be Element of O such that
A91:       [[f1,f2],y] = [[o11,o11],o11];
          [f1,f2] = [o11,o11] by A91,XTUPLE_0:1;
          hence thesis by A89,XTUPLE_0:1;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          ([[f1,f2],y]=[[o2,[o1,o2]],[o1,o2]] or
          [[f1,f2],y]=[[[o1,o2],o1],[o1,o2]]);
          then consider o11,o12 be Element of O such that
A92:       o11 in o12 & ([[f1,f2],y]=[[o12,[o11,o12]],[o11,o12]] or
          [[f1,f2],y]=[[[o11,o12],o11],[o11,o12]]);
          per cases by A92,XTUPLE_0:1;
          suppose [f1,f2] = [o12,[o11,o12]];
            hence thesis by A89,XTUPLE_0:1;
          end;
          suppose [f1,f2] = [[o11,o12],o11];
            then f1 = [o11,o12] & f2 = o11 by XTUPLE_0:1;
            hence thesis by A89,XTUPLE_0:1;
          end;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          [[f1,f2],y] = [[[o2,o3],[o1,o2]],[o1,o3]];
          then consider o1,o2,o3 be Element of O such that
A93:       o1 in o2 & o2 in o3 & [[f1,f2],y] = [[[o2,o3],[o1,o2]],[o1,o3]];
          [f1,f2] = [[o2,o3],[o1,o2]] by A93,XTUPLE_0:1;
          hence thesis by A89,XTUPLE_0:1;
        end;
      end;
A94:  for o being Element of O, f being morphism of C
      st f = o holds f is identity
      proof
        let o be Element of O;
        let f be morphism of C;
        assume
A95:     f = o;
        for f1 being morphism of C st f |> f1 holds f (*) f1 = f1
        proof
          let f1 be morphism of C;
          per cases by A49;
          suppose
A96:         f1 is Element of O;
            assume f |> f1;
            then f = f1 by A95,A96,A76;
            hence thesis by A96,A56;
          end;
          suppose ex o1,o2 being Element of O st f1 = [o1,o2] & o1 in o2;
            then consider o1,o2 be Element of O such that
A97:         f1 = [o1,o2] & o1 in o2;
            assume f |> f1;
            then o2 = o by A95,A97,A82;
            hence thesis by A95,A97,A60;
          end;
        end;
        then
A98:     f is left_identity by CAT_6:def 4;
        for f1 being morphism of C st f1 |> f holds f1 (*) f = f1
        proof
          let f1 be morphism of C;
          per cases by A49;
          suppose
A99:         f1 is Element of O;
            assume f1 |> f;
            then f = f1 by A95,A99,A76;
            hence thesis by A99,A56;
          end;
          suppose ex o1,o2 being Element of O st f1 = [o1,o2] & o1 in o2;
            then consider o1,o2 be Element of O such that
A100:         f1 = [o1,o2] & o1 in o2;
            assume f1 |> f;
            then o1 = o by A95,A100,A88;
            hence thesis by A95,A100,A65;
          end;
        end;
        hence f is identity by A98,CAT_6:def 5,def 14;
      end;
      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;
        assume f1 in the carrier of C;
        per cases by A49;
        suppose
A101:       f1 is Element of O;
          take f1;
          thus f1 |> f1 by A56,A101;
          f1 is identity by A101,A94;
          hence f1 is left_identity by CAT_6:def 14;
          thus thesis;
        end;
        suppose ex o1,o2 being Element of O st f1 = [o1,o2] & o1 in o2;
          then consider o11,o12 be Element of O such that
A102:       f1 = [o11,o12] & o11 in o12;
          reconsider f = o12 as morphism of C by A52;
          take f;
          thus f |> f1 by A60,A102;
          f is identity by A94;
          hence f is left_identity by CAT_6:def 14;
        end;
      end;
      then
A103:  C is with_left_identities by CAT_6:def 6;
A104: for f1 being morphism of C st f1 in the carrier of C holds
      ex f being morphism of C st f1 |> f & f is right_identity
      proof
        let f1 be morphism of C;
        assume f1 in the carrier of C;
        per cases by A49;
        suppose
A105:       f1 is Element of O;
          take f1;
          thus f1 |> f1 by A56,A105;
          f1 is identity by A105,A94;
          hence f1 is right_identity by CAT_6:def 14;
          thus thesis;
        end;
        suppose ex o1,o2 being Element of O st f1 = [o1,o2] & o1 in o2;
          then consider o11,o12 be Element of O such that
A106:       f1 = [o11,o12] & o11 in o12;
          reconsider f = o11 as morphism of C by A52;
          take f;
          thus f1 |> f by A65,A106;
          f is identity by A94;
          hence f is right_identity by CAT_6:def 14;
        end;
      end;
A107:  for f1,f2 being morphism of C st f1 |> f2 holds
      (ex o1 being Element of O st f1 = o1 & f2 = o1) or
      (ex o1,o2 being Element of O st o1 in o2 & ((f1 = [o1,o2] & f2 = o1) or
      (f1 = o2 & f2 = [o1,o2]))) or
      (ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 & f1 = [o2,o3] &
      f2 = [o1,o2])
      proof
        let f1,f2 be morphism of C;
        assume f1 |> f2;
        then [f1,f2] in dom the composition of C by CAT_6:def 2;
        then consider y be object such that
A108:     [[f1,f2],y] in F by XTUPLE_0:def 12;
        per cases by A108,A4;
        suppose ex o1 being Element of O st [[f1,f2],y] = [[o1,o1],o1];
          then consider o11 be Element of O such that
A109:       [[f1,f2],y] = [[o11,o11],o11];
          [f1,f2] = [o11,o11] by A109,XTUPLE_0:1;
          then f1 = o11 & f2 = o11 by XTUPLE_0:1;
          hence thesis;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          ([[f1,f2],y]=[[o2,[o1,o2]],[o1,o2]] or
          [[f1,f2],y]=[[[o1,o2],o1],[o1,o2]]);
          then consider o11,o12 be Element of O such that
A110:       o11 in o12 & ([[f1,f2],y]=[[o12,[o11,o12]],[o11,o12]] or
          [[f1,f2],y]=[[[o11,o12],o11],[o11,o12]]);
          per cases by A110,XTUPLE_0:1;
          suppose [f1,f2] = [o12,[o11,o12]];
            then f1 = o12 & f2 = [o11,o12] by XTUPLE_0:1;
            hence thesis by A110;
          end;
          suppose [f1,f2] = [[o11,o12],o11];
            then f1 = [o11,o12] & f2 = o11 by XTUPLE_0:1;
            hence thesis by A110;
          end;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          [[f1,f2],y] = [[[o2,o3],[o1,o2]],[o1,o3]];
          then consider o1,o2,o3 be Element of O such that
A111:       o1 in o2 & o2 in o3 & [[f1,f2],y] = [[[o2,o3],[o1,o2]],[o1,o3]];
          [f1,f2] = [[o2,o3],[o1,o2]] by A111,XTUPLE_0:1;
          then f1 = [o2,o3] & f2 = [o1,o2] by XTUPLE_0:1;
          hence thesis by A111;
        end;
      end;
      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;
        assume
A112:    f1 |> f2;
        per cases by A112,A107;
        suppose ex o1 being Element of O st f1 = o1 & f2 = o1;
          then consider o1 be Element of O such that
A113:       f1 = o1 & f2 = o1;
A114:       f1(*)f2 = o1 by A113,A56;
          hereby
            assume
A115:        f1(*)f2 |> f;
            per cases by A115,A107;
            suppose ex o1 being Element of O st f1(*)f2 = o1 & f = o1;
              then consider o11 be Element of O such that
A116:           f1(*)f2 = o11 & f = o11;
              thus f2 |> f by A113,A116,A114,A56;
            end;
            suppose ex o1,o2 being Element of O st o1 in o2 &
              ((f1(*)f2 = [o1,o2] & f = o1) or (f1(*)f2 = o2 & f = [o1,o2]));
              then consider o11,o12 be Element of O such that
A117:           o11 in o12 & ((f1(*)f2 = [o11,o12] & f = o11) or
              (f1(*)f2 = o12 & f = [o11,o12]));
              thus f2 |> f by A113,A114,A117,A60;
            end;
            suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
              f1(*)f2 = [o2,o3] & f = [o1,o2];
              then consider o11,o12,o13 be Element of O such that
A118:           o11 in o12 & o12 in o13 & f1(*)f2 = [o12,o13] & f = [o11,o12];
              thus f2 |> f by A118,A113,A56;
            end;
          end;
          assume
A119:      f2 |> f;
          per cases by A119,A107;
          suppose ex o1 being Element of O st f2 = o1 & f = o1;
            then consider o11 be Element of O such that
A120:         f2 = o11 & f = o11;
            thus f1(*)f2 |> f by A113,A120,A114,A56;
          end;
          suppose ex o1,o2 being Element of O st o1 in o2 &
            ((f2 = [o1,o2] & f = o1) or (f2 = o2 & f = [o1,o2]));
            then consider o11,o12 be Element of O such that
A121:         o11 in o12 & ((f2 = [o11,o12] & f = o11) or
            (f2 = o12 & f = [o11,o12]));
            f1(*)f2 = o12 by A113,A121,A56;
            hence f1(*)f2 |> f by A121,A113,A60;
          end;
          suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
            f2 = [o2,o3] & f = [o1,o2];
            then consider o11,o12,o13 be Element of O such that
A122:         o11 in o12 & o12 in o13 & f2 = [o12,o13] & f = [o11,o12];
            thus f1(*)f2 |> f by A113,A122;
          end;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          ((f1 = [o1,o2] & f2 = o1) or (f1 = o2 & f2 = [o1,o2]));
          then consider o1,o2 being Element of O such that
A123:       o1 in o2 &
          ((f1 = [o1,o2] & f2 = o1) or (f1 = o2 & f2 = [o1,o2]));
A124:       f1(*)f2 = [o1,o2] by A123,A60,A65;
          hereby
            assume
A125:        f1(*)f2 |> f;
            per cases by A125,A107;
            suppose ex o1 being Element of O st f1(*)f2 = o1 & f = o1;
              then consider o11 be Element of O such that
A126:           f1(*)f2 = o11 & f = o11;
              thus f2 |> f by A126,A123,A60,A65;
            end;
            suppose ex o1,o2 being Element of O st o1 in o2 &
              ((f1(*)f2 = [o1,o2] & f = o1) or (f1(*)f2 = o2 & f = [o1,o2]));
              then consider o11,o12 be Element of O such that
A127:           o11 in o12 & ((f1(*)f2 = [o11,o12] & f = o11) or
              (f1(*)f2 = o12 & f = [o11,o12]));
              o1 = o11 & o2 = o12 by A124,XTUPLE_0:1,A127;
              hence f2 |> f by A127,A123,A60,A65,A56;
            end;
            suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
              f1(*)f2 = [o2,o3] & f = [o1,o2];
              then consider o11,o12,o13 be Element of O such that
A128:           o11 in o12 & o12 in o13 & f1(*)f2 = [o12,o13] & f = [o11,o12];
A129:           o1 = o12 & o2 = o13 by A124,A128,XTUPLE_0:1;
              per cases by A123;
              suppose f1 = [o1,o2] & f2 = o1;
                hence f2 |> f by A129,A128,A60;
              end;
              suppose f1 = o2 & f2 = [o1,o2];
                hence f2 |> f by A128,A124,A70;
              end;
            end;
          end;
          assume
A130:      f2 |> f;
          per cases by A130,A107;
          suppose ex o1 being Element of O st f2 = o1 & f = o1;
            then consider o11 be Element of O such that
A131:         f2 = o11 & f = o11;
            thus f1(*)f2 |> f by A123,A131,A124,A65;
          end;
          suppose ex o1,o2 being Element of O st o1 in o2 &
            ((f2 = [o1,o2] & f = o1) or (f2 = o2 & f = [o1,o2]));
            then consider o11,o12 be Element of O such that
A132:         o11 in o12 & ((f2 = [o11,o12] & f = o11) or
            (f2 = o12 & f = [o11,o12]));
            per cases by A132;
            suppose f2 = [o11,o12] & f = o11;
              hence f1(*)f2 |> f by A124,A132,A123,A65;
            end;
            suppose
A133:           f2 = o12 & f = [o11,o12];
              thus f1(*)f2 |> f by A133,A124,A132,A123,A70;
            end;
          end;
          suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
            f2 = [o2,o3] & f = [o1,o2];
            then consider o11,o12,o13 be Element of O such that
A134:         o11 in o12 & o12 in o13 & f2 = [o12,o13] & f = [o11,o12];
            thus f1(*)f2 |> f by A123,A134,A124,A70;
          end;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          f1 = [o2,o3] & f2 = [o1,o2];
          then consider o1,o2,o3 be Element of O such that
A135:       o1 in o2 & o2 in o3 & f1 = [o2,o3] & f2 = [o1,o2];
A136:       f1(*)f2 = [o1,o3] by A135,A70;
          hereby
            assume
A137:        f1(*)f2 |> f;
            per cases by A137,A107;
            suppose ex o1 being Element of O st f1(*)f2 = o1 & f = o1;
              then consider o11 be Element of O such that
A138:           f1(*)f2 = o11 & f = o11;
              thus f2 |> f by A138,A136;
            end;
            suppose ex o1,o2 being Element of O st o1 in o2 &
              ((f1(*)f2 = [o1,o2] & f = o1) or (f1(*)f2 = o2 & f = [o1,o2]));
              then consider o11,o12 be Element of O such that
A139:           o11 in o12 & ((f1(*)f2 = [o11,o12] & f = o11) or
              (f1(*)f2 = o12 & f = [o11,o12]));
              o1 = o11 & o3 = o12 by A139,A136,XTUPLE_0:1;
              hence f2 |> f by A139,A70,A135,A65;
            end;
            suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
              f1(*)f2 = [o2,o3] & f = [o1,o2];
              then consider o11,o12,o13 be Element of O such that
A140:           o11 in o12 & o12 in o13 & f1(*)f2 = [o12,o13] & f = [o11,o12];
              o1 = o12 & o3 = o13 by A136,A140,XTUPLE_0:1;
              hence f2 |> f by A140,A135,A70;
            end;
          end;
          assume
A141:      f2 |> f;
          per cases by A141,A107;
          suppose ex o1 being Element of O st f2 = o1 & f = o1;
            then consider o11 be Element of O such that
A142:         f2 = o11 & f = o11;
            thus f1(*)f2 |> f by A135,A142;
          end;
          suppose ex o1,o2 being Element of O st o1 in o2 &
            ((f2 = [o1,o2] & f = o1) or (f2 = o2 & f = [o1,o2]));
            then consider o11,o12 be Element of O such that
A143:         o11 in o12 & ((f2 = [o11,o12] & f = o11) or
            (f2 = o12 & f = [o11,o12]));
            per cases by A143;
            suppose f2 = [o11,o12] & f = o11;
              then
A144:           o1 = o11 & o12 = o2 by A135,XTUPLE_0:1;
              o1 in o3 by A135,ORDINAL1:10;
              hence f1(*)f2 |> f by A144,A136,A143,A135,A65;
            end;
            suppose
A145:           f2 = o12 & f = [o11,o12];
              thus f1(*)f2 |> f by A145,A135;
            end;
          end;
          suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
            f2 = [o2,o3] & f = [o1,o2];
            then consider o11,o12,o13 be Element of O such that
A146:         o11 in o12 & o12 in o13 & f2 = [o12,o13] & f = [o11,o12];
A147:         o1 = o12 & o2 = o13 by A135,A146,XTUPLE_0:1;
            o1 in o3 by A135,ORDINAL1:10;
            hence f1(*)f2 |> f by A146,A147,A136,A70;
          end;
        end;
      end;
      then
A148:  C is left_composable by CAT_6:def 8;
A149: for f,f1,f2 being morphism of C st f1 |> f2 holds
      f |> f1(*)f2 iff f |> f1
      proof
        let f,f1,f2 be morphism of C;
        assume
A150:    f1 |> f2;
        per cases by A150,A107;
        suppose ex o1 being Element of O st f1 = o1 & f2 = o1;
          then consider o1 be Element of O such that
A151:       f1 = o1 & f2 = o1;
A152:       f1(*)f2 = o1 by A151,A56;
          hereby
            assume
A153:        f |> f1(*)f2;
            per cases by A153,A107;
            suppose ex o1 being Element of O st f = o1 & f1(*)f2 = o1;
              then consider o11 be Element of O such that
A154:           f = o11 & f1(*)f2 = o11;
              thus f |> f1 by A151,A154,A152,A56;
            end;
            suppose ex o1,o2 being Element of O st o1 in o2 &
              ((f = [o1,o2] & f1(*)f2 = o1) or (f = o2 & f1(*)f2 = [o1,o2]));
              then consider o11,o12 be Element of O such that
A155:           o11 in o12 & ((f = [o11,o12] & f1(*)f2 = o11) or
              (f = o12 & f1(*)f2 = [o11,o12]));
              thus f |> f1 by A152,A155,A151,A65;
            end;
            suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
              f = [o2,o3] & f1(*)f2 = [o1,o2];
              then consider o11,o12,o13 be Element of O such that
A156:           o11 in o12 & o12 in o13 & f = [o12,o13] & f1(*)f2 = [o11,o12];
              thus f |> f1 by A156,A151,A56;
            end;
          end;
          assume
A157:      f |> f1;
          per cases by A157,A107;
          suppose ex o1 being Element of O st f = o1 & f1 = o1;
            then consider o11 be Element of O such that
A158:         f = o11 & f1 = o11;
            thus f |> f1(*)f2 by A151,A158,A152,A56;
          end;
          suppose ex o1,o2 being Element of O st o1 in o2 &
            ((f = [o1,o2] & f1 = o1) or (f = o2 & f1 = [o1,o2]));
            then consider o11,o12 be Element of O such that
A159:         o11 in o12 & ((f = [o11,o12] & f1 = o11) or
            (f = o12 & f1 = [o11,o12]));
            thus f |> f1(*)f2 by A159,A151,A152,A65;
          end;
          suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
            f = [o2,o3] & f1 = [o1,o2];
            then consider o11,o12,o13 be Element of O such that
A160:         o11 in o12 & o12 in o13 & f = [o12,o13] & f1 = [o11,o12];
            thus f |> f1(*)f2 by A151,A160;
          end;
        end;
        suppose ex o1,o2 being Element of O st o1 in o2 &
          ((f1 = [o1,o2] & f2 = o1) or (f1 = o2 & f2 = [o1,o2]));
          then consider o1,o2 being Element of O such that
A161:       o1 in o2 &
          ((f1 = [o1,o2] & f2 = o1) or (f1 = o2 & f2 = [o1,o2]));
A162:       f1(*)f2 = [o1,o2] by A161,A60,A65;
          hereby
            assume
A163:        f |> f1(*)f2;
            per cases by A163,A107;
            suppose ex o1 being Element of O st f = o1 & f1(*)f2 = o1;
              then consider o11 be Element of O such that
A164:           f = o11 & f1(*)f2 = o11;
              thus f |> f1 by A164,A161,A60,A65;
            end;
            suppose ex o1,o2 being Element of O st o1 in o2 &
              ((f = [o1,o2] & f1(*)f2 = o1) or (f = o2 & f1(*)f2 = [o1,o2]));
              then consider o11,o12 be Element of O such that
A165:           o11 in o12 & ((f = [o11,o12] & f1(*)f2 = o11) or
              (f = o12 & f1(*)f2 = [o11,o12]));
              o1 = o11 & o2 = o12 by A162,XTUPLE_0:1,A165;
              hence f |> f1 by A165,A161,A60,A56,A65;
            end;
            suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
              f = [o2,o3] & f1(*)f2 = [o1,o2];
              then consider o11,o12,o13 be Element of O such that
A166:           o11 in o12 & o12 in o13 & f = [o12,o13] & f1(*)f2 = [o11,o12];
A167:           o1 = o11 & o2 = o12 by A162,A166,XTUPLE_0:1;
              per cases by A161;
              suppose f1 = [o1,o2] & f2 = o1;
                hence f |> f1 by A166,A162,A70;
              end;
              suppose f1 = o2 & f2 = [o1,o2];
                hence f |> f1 by A167,A166,A65;
              end;
            end;
          end;
          assume
A168:      f |> f1;
          per cases by A168,A107;
          suppose ex o1 being Element of O st f = o1 & f1 = o1;
            then consider o11 be Element of O such that
A169:         f = o11 & f1 = o11;
            thus f |> f1(*)f2 by A161,A169,A162,A60;
          end;
          suppose ex o1,o2 being Element of O st o1 in o2 &
            ((f = [o1,o2] & f1 = o1) or (f = o2 & f1 = [o1,o2]));
            then consider o11,o12 be Element of O such that
A170:         o11 in o12 & ((f = [o11,o12] & f1 = o11) or
            (f = o12 & f1 = [o11,o12]));
            per cases by A170;
            suppose
A171:           f = [o11,o12] & f1 = o11;
              thus f |> f1(*)f2 by A171,A162,A170,A161,A70;
            end;
            suppose
A172:           f = o12 & f1 = [o11,o12];
              thus f |> f1(*)f2 by A162,A172,A170,A161,A60;
            end;
          end;
          suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
            f = [o2,o3] & f1 = [o1,o2];
            then consider o11,o12,o13 be Element of O such that
A173:         o11 in o12 & o12 in o13 & f = [o12,o13] & f1 = [o11,o12];
            thus f |> f1(*)f2 by A161,A173,A162,A70;
          end;
        end;
        suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
          f1 = [o2,o3] & f2 = [o1,o2];
          then consider o1,o2,o3 be Element of O such that
A174:       o1 in o2 & o2 in o3 & f1 = [o2,o3] & f2 = [o1,o2];
A175:       f1(*)f2 = [o1,o3] by A174,A70;
          hereby
            assume
A176:        f |> f1(*)f2;
            per cases by A176,A107;
            suppose ex o1 being Element of O st f = o1 & f1(*)f2 = o1;
              then consider o11 be Element of O such that
A177:           f = o11 & f1(*)f2 = o11;
              thus f |> f1 by A177,A175;
            end;
            suppose ex o1,o2 being Element of O st o1 in o2 &
              ((f = [o1,o2] & f1(*)f2 = o1) or (f = o2 & f1(*)f2 = [o1,o2]));
              then consider o11,o12 be Element of O such that
A178:           o11 in o12 & ((f = [o11,o12] & f1(*)f2 = o11) or
              (f = o12 & f1(*)f2 = [o11,o12]));
              o1 = o11 & o3 = o12 by A178,A175,XTUPLE_0:1;
              hence f |> f1 by A178,A174,A70,A60;
            end;
            suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
              f = [o2,o3] & f1(*)f2 = [o1,o2];
              then consider o11,o12,o13 be Element of O such that
A179:           o11 in o12 & o12 in o13 & f = [o12,o13] & f1(*)f2 = [o11,o12];
              o1 = o11 & o3 = o12 by A175,A179,XTUPLE_0:1;
              hence f |> f1 by A179,A174,A70;
            end;
          end;
          assume
A180:      f |> f1;
          per cases by A180,A107;
          suppose ex o1 being Element of O st f = o1 & f1 = o1;
            then consider o11 be Element of O such that
A181:         f = o11 & f1 = o11;
            thus f |> f1(*)f2 by A174,A181;
          end;
          suppose ex o1,o2 being Element of O st o1 in o2 &
            ((f = [o1,o2] & f1 = o1) or (f = o2 & f1 = [o1,o2]));
            then consider o11,o12 be Element of O such that
A182:         o11 in o12 & ((f = [o11,o12] & f1 = o11) or
            (f = o12 & f1 = [o11,o12]));
            per cases by A182;
            suppose
A183:           f = [o11,o12] & f1 = o11;
              thus f |> f1(*)f2 by A183,A174;
            end;
            suppose f = o12 & f1 = [o11,o12];
              then
A184:           o2 = o11 & o12 = o3 by A174,XTUPLE_0:1;
              o1 in o3 by A174,ORDINAL1:10;
              hence f |> f1(*)f2 by A184,A175,A182,A174,A60;
            end;
          end;
          suppose ex o1,o2,o3 being Element of O st o1 in o2 & o2 in o3 &
            f = [o2,o3] & f1 = [o1,o2];
            then consider o11,o12,o13 be Element of O such that
A185:         o11 in o12 & o12 in o13 & f = [o12,o13] & f1 = [o11,o12];
A186:         o2 = o11 & o3 = o12 by A174,A185,XTUPLE_0:1;
            o1 in o3 by A174,ORDINAL1:10;
            hence f |> f1(*)f2 by A185,A186,A175,A70;
          end;
        end;
      end;
      reconsider C as strict non empty composable with_identities
      CategoryStr by A104,A103,CAT_6:def 7,def 12,
       A149,A148,CAT_6:def 9,def 11;
A187: for x being object holds x in Ob C iff x in O
      proof
        let x be object;
        hereby
          assume
A188:       x in Ob C;
          reconsider f = x as morphism of C by A188;
          x in Mor C by A188;
          then
A189:       f in X by CAT_6:def 1;
          per cases by A189,XBOOLE_0:def 3;
          suppose f in O;
            hence x in O;
          end;
          suppose f in X1;
            then consider o1,o2 be Element of O such that
A190:         f = [o1,o2] & o1 in o2;
            reconsider f1 = o1, f2 = o2 as morphism of C by A52;
A191:        f2 is identity by A94;
A192:        cod f = o2 by A190,A60,A191,CAT_6:27;
            f is identity by A188,CAT_6:22;
            hence x in O by A192,A190,Th6;
          end;
        end;
        assume
A193:     x in O;
        then reconsider o = x as Element of O;
        o in X by A193,XBOOLE_0:def 3;
        then reconsider f = o as morphism of C by CAT_6:def 1;
        f is Object of C by A94,CAT_6:22;
        hence x in Ob C;
      end;
      then
A194:  Ob C = O by TARSKI:2;
A195:  for o1,o2 being Object of C, f being morphism of C st
      f in Hom(o1,o2) holds (f = o1 & o1 = o2) or (f = [o1,o2] & o1 in o2)
      proof
        let o1,o2 be Object of C;
        let f be morphism of C;
        assume f in Hom(o1,o2);
        then
A196:     dom f = o1 & cod f = o2 by Th20;
        assume
A197:     not (f = o1 & o1 = o2);
        per cases by A49;
        suppose f is Element of O;
          then f is identity by A194,CAT_6:22;
          then o1 = f & o2 = f by A196,Th6;
          hence thesis by A197;
        end;
        suppose ex o1,o2 being Element of O st f = [o1,o2] & o1 in o2;
          then consider o11,o22 be Element of O such that
A198:       f = [o11,o22] & o11 in o22;
A199:      o11 in Ob C & o22 in Ob C by A194;
          reconsider f1 = o11, f2 = o22 as morphism of C by A199;
          f1 is identity by A94;
          then
A200:     dom f = o11 by A198,A65,CAT_6:26;
          f2 is identity by A94;
          hence thesis by A198,A200,A196,A60,CAT_6:27;
        end;
      end;
A201: for o1,o2 being Object of C, f1,f2 being morphism of C st
      f1 in Hom(o1,o2) & f2 in Hom(o1,o2) holds f1 = f2
      proof
        let o1,o2 be Object of C;
        let f1,f2 be morphism of C;
        assume A202: f1 in Hom(o1,o2);
        assume A203: f2 in Hom(o1,o2);
        per cases by A202,A195;
        suppose
A204:       f1 = o1 & o1 = o2;
          per cases by A203,A195;
          suppose f2 = o1 & o1 = o2;
            hence thesis by A204;
          end;
          suppose f2 = [o1,o2] & o1 in o2;
            hence thesis by A204;
          end;
        end;
        suppose
A205:       f1 = [o1,o2] & o1 in o2;
          per cases by A203,A195;
          suppose f2 = o1 & o1 = o2;
            hence thesis by A205;
          end;
          suppose f2 = [o1,o2] & o1 in o2;
            hence thesis by A205;
          end;
        end;
      end;
      then C is preorder;
      then reconsider C as strict preorder category;
      take C;
      thus
A206:  Ob C = O by A187,TARSKI:2;
      thus
A207:  for o1,o2 being Object of C st o1 in o2 holds Hom(o1,o2) = {[o1,o2]}
      proof
        let o1,o2 be Object of C;
A208:    o1 in Ob C & o2 in Ob C by SUBSET_1:def 1;
        assume
A209:    o1 in o2;
        reconsider o11=o1, o22=o2 as Element of O by A187;
        consider f be morphism of C such that
A210:    f = [o11,o22] by A209,A53;
        reconsider f1 = o1, f2 = o2 as morphism of C by A208;
A211:    f1 is identity by A94,A206;
A212:    dom f = o1 by A210,A209,A65,A211,CAT_6:26;
A213:    f2 is identity by A94,A206;
        cod f = o2 by A210,A209,A60,A213,CAT_6:27;
        then f in {ff where ff is morphism of C: dom ff = o1 & cod ff = o2}
        by A212;
        then
A214:    f in Hom(o1,o2) by Def2;
        for x being object holds x in Hom(o1,o2) iff x = [o1,o2]
        by A210,A214,A201;
        hence Hom(o1,o2) = {[o1,o2]} by TARSKI:def 1;
      end;
      for a,b being object holds [a,b] in RelOb C iff [a,b] in RelIncl O
      proof
        let a,b be object;
        hereby
          assume [a,b] in RelOb C;
          then consider o1,o2 be Object of C such that
A215:     [a,b] = [o1,o2] & ex f being morphism of C st f in Hom(o1,o2);
          consider f be morphism of C such that
A216:     f in Hom(o1,o2) by A215;
A217:     dom f = o1 & cod f = o2 by A216,Th20;
A218:     o1 c= o2
          proof
            per cases by A49;
            suppose f is Element of O;
              then f is identity by A94;
              then dom f = f & cod f = f by Th6;
              hence thesis by A217;
            end;
            suppose ex o1,o2 being Element of O st f = [o1,o2] & o1 in o2;
              then consider o11,o22 be Element of O such that
A219:          f = [o11,o22] & o11 in o22;
               o11 in O & o22 in O by A3;
              then reconsider f1 = o11, f2 = o22 as morphism of C by A206;
A220:          f1 is identity by A94;
A221:          f2 is identity by A94;
               o1 = o11 & o2 = o22
               by A219,A65,A220,CAT_6:26,A217,A60,A221,CAT_6:27;
              hence thesis by A219,ORDINAL1:def 2;
            end;
          end;
          thus [a,b] in RelIncl O by A206,A215,A218,WELLORD2:def 1;
        end;
        assume
A222:   [a,b] in RelIncl O;
        then
A223: a in field RelIncl O & b in field RelIncl O by RELAT_1:15;
        then
A224:     a in O & b in O by WELLORD2:def 1;
        reconsider o1 = a, o2 = b as Object of C by A223,A206,WELLORD2:def 1;
A225:     o1 c= o2 by A222,A224,WELLORD2:def 1;
        ex f being morphism of C st f in Hom(o1,o2)
        proof
          per cases by A224,ORDINAL1:def 3;
          suppose
A226:        o1 in o2;
            reconsider o11=o1, o22=o2 as Element of O by A223,WELLORD2:def 1;
            consider f be morphism of C such that
A227:        f = [o11,o22] by A226,A53;
            f in {[o1,o2]} by A227,TARSKI:def 1;
            then f in Hom(o1,o2) by A226,A207;
            hence thesis;
          end;
          suppose o1 = o2 or o2 in o1;
            then o1 = o2 or o2 c= o1 by A224,ORDINAL1:def 2;
            then
A228:        o1 = o2 by A225,XBOOLE_0:def 10;
            o1 in Hom(o1,o1) by Th21;
            hence thesis by A228;
          end;
        end;
        hence [a,b] in RelOb C;
      end;
      hence RelOb C = RelIncl O by RELAT_1:def 2;
      thus thesis by CAT_6:def 1;
    end;
  end;
