reserve FT for non empty RelStr;
reserve x, y, z for Element of FT;
reserve A for Subset of FT;
reserve F for Subset of FT;

theorem
  for FT being filled finite non empty RelStr, A being Subset of FT
  holds A is connected iff for x being Element of FT st x in A ex S being
FinSequence of bool the carrier of FT st len S > 0 & S/.1 = {x} & (for i being
Element of NAT st i > 0 & i < len S holds S/.(i+1) = (S/.i)^b /\ A) & A c= S/.
  len S
proof
  let FT be filled finite non empty RelStr, A be Subset of FT;
  thus A is connected implies for x being Element of FT st x in A ex S being
FinSequence of bool the carrier of FT st len S > 0 & S/.1 = {x} & (for i being
Element of NAT st i > 0 & i < len S holds S/.(i+1) = (S/.i)^b /\ A) & A c= S/.
  len S
  proof
    deffunc F(Subset of FT) = $1^b /\ A;
    assume
A1: A is connected;
    let x be Element of FT;
    assume x in A;
    then
A2: {x} c= A by ZFMISC_1:31;
A3: for B being Subset of FT st B c= A holds B c= F(B) & F(B) c= A
    proof
      let B be Subset of FT such that
A4:   B c= A;
      B c= B^b by Th13;
      hence B c= B^b /\ A by A4,XBOOLE_1:19;
      thus thesis by XBOOLE_1:17;
    end;
A5: A is finite;
    consider S being FinSequence of bool the carrier of FT such that
A6: len S > 0 and
A7: S/.1={x} and
A8: for i being Nat st i > 0 & i < len S holds S/.(i+1)=F( S/.i) and
A9: F(S/.len S) = S/.len S and
A10: for i, j being Nat st i > 0 & i < j & j <= len S holds
    S/.i c= A & S/.i c< S/.j from MaxFinSeqEx(A5,A2,A3);
    consider k being Nat such that
A11: len S = k+1 by A6,NAT_1:6;
    set B = S/.len S;
    set C = A \ B;
A12: B misses ( A \ B ) by XBOOLE_1:79;
    defpred P[Nat] means $1 < len S implies S/.($1+1) <> {};
A13: now
      let i be Nat;
      assume
A14:  P[i];
      thus P[i+1]
      proof
        assume
A15:    i + 1 < len S;
        then i+1 < i+1+1 & i+1+1 <= len S by NAT_1:13;
        then S/.(i+1) c< S/.(i+1+1) by A10;
        then S/.(i+1) c= S/.(i+1+1);
        hence thesis by A14,A15,NAT_1:13;
      end;
    end;
A16: P[0] by A7;
A17: for i being Nat holds P[i] from NAT_1:sch 2(A16,A13);
    reconsider k as Element of NAT by ORDINAL1:def 12;
    k < len S by A11,NAT_1:13;
    then
A18: B <> {} by A17,A11;
    take S;
    thus len S > 0 by A6;
    thus S/.1 = {x} by A7;
    thus for i being Element of NAT st i > 0 & i < len S holds S/.(i+1) = S/.i
    ^b /\ A by A8;
    assume not A c= S/.len S;
    then
A19: C <> {} by XBOOLE_1:37;
    B^b /\ C = B^b /\ ( A /\ ( A \ B ) ) by XBOOLE_1:28,36
      .= B /\ ( A \ B ) by A9,XBOOLE_1:16
      .= {} by A12;
    then
A20: B misses C & B^b misses C by XBOOLE_1:79;
    B \/ C = B \/ A by XBOOLE_1:39
      .= A by A9,XBOOLE_1:12,17;
    hence contradiction by A1,A19,A18,A20;
  end;
  assume
A21: for x being Element of FT st x in A ex S being FinSequence of bool
the carrier of FT st len S > 0 & S/.1 = {x} & (for i being Element of NAT st i
  > 0 & i < len S holds S/.(i+1) = S/.i^b /\ A) & A c= S/.len S;
  given B, C being Subset of FT such that
A22: A = B \/ C and
A23: B <> {} and
A24: C <> {} and
A25: B misses C and
A26: B^b misses C;
  set x = the Element of B;
  x in A by A22,A23,XBOOLE_0:def 3;
  then consider S being FinSequence of bool the carrier of FT such that
A27: len S > 0 and
A28: S/.1 = {x} and
A29: for i being Element of NAT st i > 0 & i < len S holds S/.(i+1) = (S
  /.i)^b /\ A and
A30: A c= S/.len S by A21;
  consider k being Nat such that
A31: len S = k + 1 by A27,NAT_1:6;
  defpred P[Nat] means $1 < len S implies S/.($1+1) c= B;
  B^b /\ C = {} by A26;
  then
A32: B^b /\ A = B^b /\ B \/ {} by A22,XBOOLE_1:23
    .= B by Th13,XBOOLE_1:28;
A33: now
    let i be Nat;
    assume
A34: P[i];
    thus P[i+1]
    proof
      assume
A35:  i+1 < len S;
      then S/.(i+1)^b c= B^b by A34,Th14,NAT_1:13;
      then S/.(i+1)^b /\ A c= B^b /\ A by XBOOLE_1:26;
      hence thesis by A32,A29,A35;
    end;
  end;
A36: P[0] by A23,A28,ZFMISC_1:31;
A37: for i being Nat holds P[i] from NAT_1:sch 2(A36,A33);
  reconsider k as Element of NAT by ORDINAL1:def 12;
  k < len S by A31,NAT_1:13;
  then
A38: S/.len S c= B by A37,A31;
A39: B c= A by A22,XBOOLE_1:7;
  then S/.len S c= A by A38;
  then S/.len S = A by A30;
  then
A40: A = B by A39,A38;
  B /\ C = {} by A25;
  hence contradiction by A22,A24,A40,XBOOLE_1:7,28;
end;
