
theorem Th111:
for G being finitely_colorable SimpleGraph
 ex E being Coloring of Mycielskian G st card E = 1 + chromatic# G
proof
 let  G be finitely_colorable SimpleGraph;
  set uG = union G;
  set MG = Mycielskian G; set uMG = union MG;
  set cnG = chromatic# G;
  consider C being finite Coloring of G such that
A1: card C = cnG by Def22;
  defpred P[object,object] means
    ex A being set st A = $1 &
     $2 = { [x,uG] where x is Element of uG : x in A };
A2: for e being object st e in C ex u being object st P[e,u]
    proof let e be object such that
   e in C;
      reconsider A = e as set by TARSKI:1;
     take u = { [x,uG] where x is Element of uG : x in A };
     thus P[e,u];
    end;
   consider r being Function such that dom r = C and
A3: for e being object st e in C holds P[e,r.e] from CLASSES1:sch 1(A2);
   set D = { d \/ r.d where d is Element of C : d in C };
A4: card D = card C proof
     per cases;
     suppose A5: D is empty;
       now assume C is non empty;
         then consider c being object such that
         A6: c in C;
         reconsider c as set by TARSKI:1;
         c \/ r.c in D by A6;
         hence contradiction by A5;
       end;
       hence thesis by A5;
     end;
     suppose A7: D is non empty;
       defpred R[object,object] means
         ex A being set st A = $1 & $2 = A \/ r.$1;
A8: for e being object st e in C ex u being object st R[e,u]
   proof let e be object such that
   e in C;
     reconsider A = e as set by TARSKI:1;
    take u = A \/ r.e;
    thus R[e,u];
   end;
        consider s being Function such that
     A9: dom s = C and
A10: for e being object st e in C holds R[e,s.e] from CLASSES1:sch 1(A8);
     A11: rng s c= D proof
           let y be object;
           assume y in rng s;
           then consider x being object such that
          A12: x in dom s and
          A13: y = s.x by FUNCT_1:def 3;
         reconsider x as set by TARSKI:1;
            R[x,y] by A12,A13,A9,A10;
           then y = x \/ r.x;
             hence y in D by A12,A9;
          end;
          then reconsider s as Function of C, D by A9,FUNCT_2:2;
          D c= rng s proof
            let x be object;
            assume x in D;
              then consider c being Element of C such that
          A14: x = c \/ r.c and
          A15: c in C;
             R[c,s.c] by A15,A10;
             then x = s.c by A14;
            hence x in rng s by A15,A9,FUNCT_1:def 3;
          end;
          then rng s = D by A11;
          then
         A16: s is onto by FUNCT_2:def 3;
            s is one-to-one proof
              let x1,x2 be object such that
            A17: x1 in dom s and
            A18: x2 in dom s and
            A19: s.x1 = s.x2;
         reconsider x1,x2 as set by TARSKI:1;
             R[x1,s.x1] by A17,A9,A10;
             then
A20: s.x1 = x1 \/ r.x1;
             R[x2,s.x2] by A18,A9,A10;
             then
            A21: s.x2 = x2 \/ r.x2;
A22:        x1 c= x2 proof
                let x be object;
                assume A23: x in x1;
                  A24: x in s.x1 by A20,A23,XBOOLE_0:def 3;
                  per cases by A24,A19,A21,XBOOLE_0:def 3;
                  suppose x in x2;
                    hence thesis;
                  end;
                  suppose
A25: x in r.x2;
                    P[x2,r.x2] by A3,A9,A18;
                    then x in { [xx,uG] where xx is Element of uG : xx in x2 }
                                 by A25;
                    then consider xx being Element of uG such that
                  A26: x = [xx,uG] and xx in x2;
                   thus thesis by A26,A17,A23,A9,Th1;
                  end;
              end;
              x2 c= x1 proof
                let x be object;
                assume A27: x in x2;
                  A28: x in s.x2 by A21,A27,XBOOLE_0:def 3;
                  per cases by A28,A19,A20,XBOOLE_0:def 3;
                  suppose x in x1;
                    hence thesis;
                  end;
                  suppose
A29: x in r.x1;
                    P[x1,r.x1] by A3,A9,A17;
                    then x in { [xx,uG] where xx is Element of uG : xx in x1 }
                                 by A29;
                    then consider xx being Element of uG such that
                  A30: x = [xx,uG] and xx in x1;
                   thus thesis by A30,A18,A27,A9,Th1;
                  end;
              end;
            hence thesis by A22,XBOOLE_0:def 10;
            end;
         hence thesis by A16,A7,EULER_1:11;
        end;
      end;
A31: D is finite by A4;
   set E = D \/ {{uG}};
A32: union E = uMG proof
    thus union E c= uMG proof
      let x be object;
      assume x in union E;
      then consider Y being set such that
    A33: x in Y and
    A34: Y in E by TARSKI:def 4;
      per cases by A34,XBOOLE_0:def 3;
      suppose Y in D;
       then consider d being Element of C such that
     A35: Y = d \/ r.d and
     A36: d in C;
        per cases by A35,A33,XBOOLE_0:def 3;
        suppose A37: x in d;
        A38: uG c= uMG by Th84,ZFMISC_1:77;
            x in uG by A37;
         hence x in uMG by A38;
        end;
        suppose
A39: x in r.d;
            P[d,r.d] by A3,A36;
            then x in { [yy,uG] where yy is Element of uG : yy in d } by A39;
            then consider yy being Element of uG such that
          A40: x = [yy,uG] and
          A41: yy in d;
              {x} in MG by A40,A41,Th95;
         hence x in uMG by Th24;
        end;
      end;
      suppose Y in {{uG}};
        then Y = {uG} by TARSKI:def 1;
        then x = uG by A33,TARSKI:def 1;
       hence x in uMG by Th87;
      end;
    end;
    thus uMG c= union E proof
      let a be object;
      assume a in uMG;
        then consider Y being set such that
    A42: a in Y and
    A43: Y in MG by TARSKI:def 4;
    A44: a in uG implies a in union E proof
          assume a in uG;
             then a in union C by EQREL_1:def 4;
             then consider d being set such that
          A45: a in d and
          A46: d in C by TARSKI:def 4;
          A47: a in d \/ r.d by A45,XBOOLE_0:def 3;
              d \/ r.d in D by A46;
              then d \/ r.d in E by XBOOLE_0:def 3;
           hence a in union E by A47,TARSKI:def 4;
        end;
    A48: now let x be set;
           assume A49: a = [x,uG];
           assume A50: x in uG; then
              x in union C by EQREL_1:def 4;
              then consider d being set such that
          A51: x in d and
          A52: d in C by TARSKI:def 4;
              d \/ r.d in D by A52;
     then A53: d \/ r.d in E by XBOOLE_0:def 3;
A54:              a in { [xx,uG] where xx is Element of uG : xx in d }
                 by A51,A49,A50;
            P[d,r.d] by A3,A52;
              then a in r.d by A54;
              then a in d \/ r.d by XBOOLE_0:def 3;
           hence a in union E by A53,TARSKI:def 4;
        end;
      per cases by A43,MYCIELSK:4;
      suppose Y in { {} };
       hence a in union E by A42,TARSKI:def 1;
      end;
      suppose Y in the set of all
 {x} where x is Element of (uG) \/ [:uG,{uG}:] \/ {uG};
        then consider x being Element of (uG) \/ [:uG,{uG}:] \/ {uG} such that
      A55: Y = {x};
      A56: a = x by A55,A42,TARSKI:def 1;
      A57: a in (uG) \/ [:uG,{uG}:] or a in {uG} by A56,XBOOLE_0:def 3;
          per cases by A57,XBOOLE_0:def 3;
          suppose a in uG;
           hence a in union E by A44;
          end;
          suppose a in [:uG,{uG}:];
             then consider x, y being object such that
          A58: x in uG and
          A59: y in {uG} and
          A60: a = [x,y] by ZFMISC_1:def 2;
              y = uG by A59,TARSKI:def 1;
           hence a in union E by A58,A60,A48;
          end;
          suppose A61: a in {uG};
            {uG} in {{uG}} by TARSKI:def 1;
            then {uG} in E by XBOOLE_0:def 3;
           hence a in union E by A61,TARSKI:def 4;
          end;
      end;
      suppose Y in (Edges G);
       then consider p, r being set such that p <> r and
      A62: p in Vertices G and
      A63: r in Vertices G and
      A64: Y = {p, r} by Th11;
       thus a in union E by A44,A62,A63,A64,A42,TARSKI:def 2;
      end;
    suppose Y in { {x,[y,uG]} where x, y is Element of uG : {x,y} in Edges G };
        then consider x, y being Element of uG such that
      A65: Y = {x,[y,uG]} and
      A66: {x,y} in Edges G;
      A67: a = x or a = [y,uG] by A42,A65,TARSKI:def 2;
          x in uG by A66,Th13;
       hence a in union E by A67,A44,A48;
      end;
      suppose Y in { {uG,[x,uG]} where x is Element of uG : x in Vertices G };
         then consider x being Element of uG such that
      A68: Y = {uG,[x,uG]} and
      A69: x in Vertices G;
        per cases by A42,A68,TARSKI:def 2;
        suppose a = uG;
         then A70: a in {uG} by TARSKI:def 1;
          {uG} in {{uG}} by TARSKI:def 1;
          then {uG} in E by XBOOLE_0:def 3;
         hence a in union E by A70,TARSKI:def 4;
        end;
        suppose A71: a = [x,uG];
       thus a in union E by A71,A48,A69;
       end;
      end;
    end;
    end;
A72: now let A be Subset of uMG such that
    A73: A in E;
    per cases by A73,XBOOLE_0:def 3;
    suppose A in D;
       then consider d being Element of C such that
     A74: A = d \/ r.d and
     A75: d in C;
      thus  A<>{} by A74,A75;
     thus for B being Subset of uMG st B in E holds A = B or A misses B proof
       let B be Subset of uMG such that
     A76: B in E;
       per cases by A76,XBOOLE_0:def 3;
       suppose B in D;
         then consider e being Element of C such that
       A77: B = e \/ r.e and
       A78: e in C;
         now assume A meets B;
           then consider x being object such that
         A79: x in A and
         A80: x in B by XBOOLE_0:3;
          per cases by A79,A80,A77,A74,XBOOLE_0:def 3;
          suppose x in d & x in e;
            then d = e by EQREL_1:70;
           hence A = B by A77,A74;
          end;
          suppose A81: x in d & x in r.e;
            then P[e,r.e] by A3;
            then x in { [yy,uG] where yy is Element of uG : yy in e } by A81;
            then consider yy being Element of uG such that
          A82: x = [yy,uG] and yy in e;
            thus A = B by A82,Th1,A81;
          end;
          suppose A83: x in r.d & x in e;
            then P[d,r.d] by A3;
            then x in { [yy,uG] where yy is Element of uG : yy in d } by A83;
            then consider yy being Element of uG such that
          A84: x = [yy,uG] and yy in d;
            thus A = B by A84,Th1,A83;
          end;
          suppose A85: x in r.d & x in r.e;
            P[d,r.d] by A3,A75;
            then x in { [yy,uG] where yy is Element of uG : yy in d }
                  by A85;
            then consider yy being Element of uG such that
          A86: x = [yy,uG] and
          A87: yy in d;
            P[e,r.e] by A3,A78;
            then x in { [zz,uG] where zz is Element of uG : zz in e }
                    by A85;
            then consider zz being Element of uG such that
          A88: x = [zz,uG] and
          A89: zz in e;
            yy = zz by A86,A88,XTUPLE_0:1;
            then d = e by A87,A89,EQREL_1:70;
           hence A = B by A77,A74;
          end;
         end;
        hence A = B or A misses B;
       end;
       suppose B in {{uG}};
         then A90: B = {uG} by TARSKI:def 1;
         now assume A meets B;
           then consider x being object such that
         A91: x in A and
         A92: x in B by XBOOLE_0:3;
         A93: x = uG by A92,A90,TARSKI:def 1;
           per cases by A93,A91,A74,XBOOLE_0:def 3;
           suppose uG in d;
             then uG in uG;
            hence contradiction;
           end;
           suppose
A94:   uG in r.d;
            P[d,r.d] by A3,A75;
          then uG in { [yy,uG] where yy is Element of uG : yy in d } by A94;
            then consider yy being Element of uG such that
          A95: uG = [yy,uG] and yy in d;
            thus contradiction by A95,Th2;
           end;
         end;
        hence A = B or A misses B;
       end;
      end;
    end;
    suppose A96: A in {{uG}};
     then A97: A = {uG} by TARSKI:def 1;
     thus A<>{} by A96;
     thus for B being Subset of uMG st B in E holds A = B or A misses B proof
      let B be Subset of uMG such that
      A98: B in E;
      per cases by A98,XBOOLE_0:def 3;
      suppose B in D;
       then consider d being Element of C such that
     A99: B = d \/ r.d and
     A100: d in C;
         now assume A meets B;
           then consider x being object such that
         A101: x in A and
         A102: x in B by XBOOLE_0:3;
         A103: x = uG by A101,A97,TARSKI:def 1;
           per cases by A103,A102,A99,XBOOLE_0:def 3;
           suppose uG in d;
             then uG in uG;
            hence contradiction;
           end;
           suppose
A104:     uG in r.d;
            P[d,r.d] by A3,A100;
        then uG in { [yy,uG] where yy is Element of uG : yy in d } by A104;
            then consider yy being Element of uG such that
          A105: uG = [yy,uG] and yy in d;
            thus contradiction by A105,Th2;
           end;
         end;
        hence A = B or A misses B;
      end;
      suppose B in {{uG}};
       hence A = B or A misses B by A97,TARSKI:def 1;
      end;
     end;
     end;
    end;
A106: E c= bool uMG proof
     let x be object;
       reconsider x1 = x as set by TARSKI:1;
     assume A107: x in E;
     per cases by A107,XBOOLE_0:def 3;
     suppose x in D;
       then consider d being Element of C such that
     A108: x = d \/ r.d and
     A109: d in C;
     A110: uG c= uMG by Th84,ZFMISC_1:77;
     A111: d c= uMG by A110;
        r.d c= uMG proof
          let y be object;
          assume
A112:         y in r.d;
            P[d,r.d] by A3,A109;
          then y in { [yy,uG] where yy is Element of uG : yy in d } by A112;
            then consider yy being Element of uG such that
          A113: y = [yy,uG] and
          A114: yy in d;
            {y} in MG by A113,A114,Th95;
          hence y in uMG by Th24;
        end;
        then x1 c= uMG by A108,A111,XBOOLE_1:8;
       hence x in bool uMG;
     end;
     suppose x in {{uG}};
        then A115: x = {uG} by TARSKI:def 1;
        uG in uMG by Th87;
        then x1 c= uMG by A115,ZFMISC_1:31;
       hence x in bool uMG;
     end;
    end;
   reconsider E as a_partition of uMG by A32,A72,A106,EQREL_1:def 4;
   E is StableSet-wise proof
    let e be set such that
   A116: e in E;
      reconsider e1 = e as Subset of uMG by A116;
      e1 is stable proof
       let x, y be set such that
      A117: x <> y and
      A118: x in e1 and
      A119: y in e1;
       per cases by A116,XBOOLE_0:def 3;
       suppose e in D;
        then consider d being Element of C such that
       A120: e = d \/ r.d and
       A121: d in C;
       A122: P[d,r.d] by A3,A121;
       A123: d is stable by Def20;
        per cases by A120,A118,A119,XBOOLE_0:def 3;
        suppose A124: x in d & y in d;
          then {x,y} nin G by A123,A117;
         hence {x,y} nin MG by A124,Th103;
        end;
        suppose that A125: x in d and A126: y in r.d;
          consider x1 being Element of uG such that
        A127: y = [x1,uG] and
        A128: x1 in d by A126,A122;
          per cases;
          suppose x1 = x;
            hence {x,y} nin MG by A127,Th100;
          end;
          suppose x1 <> x;
            then {x1,x} nin G by A125,A128,A123;
           hence {x,y} nin MG by A125,A127,Th101;
          end;
        end;
        suppose that A129: x in r.d and A130: y in d;
          consider x1 being Element of uG such that
        A131: x = [x1,uG] and
        A132: x1 in d by A129,A122;
          per cases;
          suppose x1 = y;
            hence {x,y} nin MG by A131,Th100;
          end;
          suppose x1 <> y;
            then {x1,y} nin G by A130,A132,A123;
           hence {x,y} nin MG by A131,A130,Th101;
          end;
        end;
        suppose that A133: x in r.d and A134: y in r.d;
          consider x1 being Element of uG such that
        A135: x = [x1,uG] and x1 in d by A133,A122;
          consider y1 being Element of uG such that
        A136: y = [y1,uG] and y1 in d by A134,A122;
         thus {x,y} nin MG by A135,A136,A117,Th98;
        end;
       end;
       suppose e in {{uG}};
         then e = {uG} by TARSKI:def 1;
         then x = uG & y = uG by A118,A119,TARSKI:def 1;
        hence thesis by A117;
       end;
      end;
    hence e is StableSet of MG;
   end;
   then reconsider E as Coloring of MG;
   take E;
   now
     assume {uG} in D;
     then consider d being Element of C such that
   A137: {uG} = d \/ r.d and
   A138: d in C;
   A139: uG in d \/ r.d by A137,TARSKI:def 1;
     per cases by A139,XBOOLE_0:def 3;
     suppose uG in d;
        then uG in uG;
       hence contradiction;
     end;
     suppose
A140:  uG in r.d;
            P[d,r.d] by A3,A138;
       then uG in { [x,uG] where x is Element of uG : x in d } by A140;
       then consider x being Element of uG such that
     A141: uG = [x,uG] and x in d;
       thus contradiction by A141,Th2;
     end;
   end;
   hence card E = 1 + cnG by A4,A31,A1,CARD_2:41;
end;
