reserve X,Y,x,y for set;
reserve A for non empty Poset;
reserve a,a1,a2,a3,b,c for Element of A;
reserve S,T for Subset of A;
reserve f for Choice_Function of BOOL(the carrier of A);
reserve fC,fC1,fC2 for Chain of f;

theorem Th44:
  fC <> union(Chains(f)) & S = union(Chains(f)) implies fC is Initial_Segm of S
proof
  assume that
A1: fC <> union(Chains(f)) and
A2: S = union(Chains(f));
  set x = the Element of S \ fC;
  fC in Chains(f) by Def13;
  then fC c= union(Chains(f)) by ZFMISC_1:74;
  then not union(Chains(f)) c= fC by A1;
  then
A3: S \ fC <> {} by A2,XBOOLE_1:37;
  then
A4: not x in fC by XBOOLE_0:def 5;
  x in S by A3,XBOOLE_0:def 5;
  then consider X such that
A5: x in X and
A6: X in Chains(f) by A2,TARSKI:def 4;
  reconsider X as Chain of f by A6,Def13;
  not X c= fC by A3,A5,XBOOLE_0:def 5;
  then not X c< fC;
  then not X is Initial_Segm of fC by Th42;
  then fC is Initial_Segm of X by A5,A4,Th41;
  then consider a such that
A7: a in X and
A8: fC = InitSegm(X,a) by A5,Def11;
A9: X c= S by A2,A6,ZFMISC_1:74;
  InitSegm(S,a) = InitSegm(X,a)
  proof
    thus InitSegm(S,a) c= InitSegm(X,a)
    proof
      let x be object;
      assume
A10:  x in InitSegm(S,a);
      then
A11:  x in LowerCone{a} by XBOOLE_0:def 4;
      then consider b such that
A12:  b = x and
A13:  for a2 st a2 in {a} holds b < a2;
      b in S by A10,A12,XBOOLE_0:def 4;
      then consider Y such that
A14:  b in Y and
A15:  Y in Chains(f) by A2,TARSKI:def 4;
      reconsider Y as Chain of f by A15,Def13;
      a in {a} by TARSKI:def 1;
      then
A16:  b < a by A13;
      now
        per cases;
        suppose
          X = Y;
          hence thesis by A11,A12,A14,XBOOLE_0:def 4;
        end;
        suppose
A17:      X <> Y;
          now
            per cases by A17,Th41;
            suppose
              X is Initial_Segm of Y;
              then x in X by A7,A12,A16,A14,Th32;
              hence thesis by A11,XBOOLE_0:def 4;
            end;
            suppose
              Y is Initial_Segm of X;
              then Y c< X by Th42;
              then Y c= X;
              hence thesis by A11,A12,A14,XBOOLE_0:def 4;
            end;
          end;
          hence thesis;
        end;
      end;
      hence thesis;
    end;
    let x be object;
    assume x in InitSegm(X,a);
    then x in LowerCone{a} & x in X by XBOOLE_0:def 4;
    hence thesis by A9,XBOOLE_0:def 4;
  end;
  hence thesis by A7,A8,A9,Def11;
end;
