let G be Go-board; :: thesis: for f being FinSequence of (TOP-REAL 2) st 1 <= len f & f /. 1 in rng (Col G,1) & f /. (len f) in rng (Col G,(width G)) & f is_sequence_on G holds
( ( for i being Element of NAT st 1 <= i & i <= width G holds
ex k being Element of NAT st
( k in dom f & f /. k in rng (Col G,i) ) ) & ( for i being Element of NAT st 1 <= i & i <= width G & 2 <= len f holds
L~ f meets rng (Col G,i) ) & ( for i, j, k, m being Element of NAT st 1 <= i & i <= width G & 1 <= j & j <= width G & k in dom f & m in dom f & f /. k in rng (Col G,i) & ( for n being Element of NAT st n in dom f & f /. n in rng (Col G,i) holds
n <= k ) & k < m & f /. m in rng (Col G,j) holds
i < j ) )

let f be FinSequence of (TOP-REAL 2); :: thesis: ( 1 <= len f & f /. 1 in rng (Col G,1) & f /. (len f) in rng (Col G,(width G)) & f is_sequence_on G implies ( ( for i being Element of NAT st 1 <= i & i <= width G holds
ex k being Element of NAT st
( k in dom f & f /. k in rng (Col G,i) ) ) & ( for i being Element of NAT st 1 <= i & i <= width G & 2 <= len f holds
L~ f meets rng (Col G,i) ) & ( for i, j, k, m being Element of NAT st 1 <= i & i <= width G & 1 <= j & j <= width G & k in dom f & m in dom f & f /. k in rng (Col G,i) & ( for n being Element of NAT st n in dom f & f /. n in rng (Col G,i) holds
n <= k ) & k < m & f /. m in rng (Col G,j) holds
i < j ) ) )

assume that
A1: ( 1 <= len f & f /. 1 in rng (Col G,1) ) and
A2: f /. (len f) in rng (Col G,(width G)) and
A3: f is_sequence_on G ; :: thesis: ( ( for i being Element of NAT st 1 <= i & i <= width G holds
ex k being Element of NAT st
( k in dom f & f /. k in rng (Col G,i) ) ) & ( for i being Element of NAT st 1 <= i & i <= width G & 2 <= len f holds
L~ f meets rng (Col G,i) ) & ( for i, j, k, m being Element of NAT st 1 <= i & i <= width G & 1 <= j & j <= width G & k in dom f & m in dom f & f /. k in rng (Col G,i) & ( for n being Element of NAT st n in dom f & f /. n in rng (Col G,i) holds
n <= k ) & k < m & f /. m in rng (Col G,j) holds
i < j ) )

A4: ( 1 in dom f & len f in dom f & dom f = Seg (len f) ) by A1, FINSEQ_1:def 3, FINSEQ_3:27;
defpred S1[ Element of NAT ] means ( 1 <= $1 & $1 <= width G implies ex k being Element of NAT st
( k in dom f & f /. k in rng (Col G,$1) ) );
A5: S1[ 0 ] ;
A6: for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be Element of NAT ; :: thesis: ( S1[k] implies S1[k + 1] )
assume A7: ( 1 <= k & k <= width G implies ex i being Element of NAT st
( i in dom f & f /. i in rng (Col G,k) ) ) ; :: thesis: S1[k + 1]
assume A8: ( 1 <= k + 1 & k + 1 <= width G ) ; :: thesis: ex k being Element of NAT st
( k in dom f & f /. k in rng (Col G,(k + 1)) )

then A9: k + 1 in Seg (width G) by FINSEQ_1:3;
per cases ( k = 0 or k <> 0 ) ;
suppose A10: k = 0 ; :: thesis: ex k being Element of NAT st
( k in dom f & f /. k in rng (Col G,(k + 1)) )

take i = 1; :: thesis: ( i in dom f & f /. i in rng (Col G,(k + 1)) )
thus ( i in dom f & f /. i in rng (Col G,(k + 1)) ) by A1, A10, FINSEQ_3:27; :: thesis: verum
end;
suppose k <> 0 ; :: thesis: ex k being Element of NAT st
( k in dom f & f /. k in rng (Col G,(k + 1)) )

then ( 0 < k & k <= k + 1 ) by NAT_1:11;
then A11: ( 0 + 1 <= k & k <= width G ) by A8, NAT_1:13;
defpred S2[ Nat] means ( $1 in dom f & f /. $1 in rng (Col G,k) );
A12: ex i being Nat st S2[i] by A7, A11;
A13: for i being Nat st S2[i] holds
i <= len f by FINSEQ_3:27;
A14: k in Seg (width G) by A11, FINSEQ_1:3;
consider m being Nat such that
A15: ( S2[m] & ( for i being Nat st S2[i] holds
i <= m ) ) from NAT_1:sch 6(A13, A12);
take n = m + 1; :: thesis: ( n in dom f & f /. n in rng (Col G,(k + 1)) )
for i being Element of NAT st S2[i] holds
i <= m by A15;
hence ( n in dom f & f /. n in rng (Col G,(k + 1)) ) by A1, A2, A3, A9, A14, A15, Th48; :: thesis: verum
end;
end;
end;
thus A16: for i being Element of NAT holds S1[i] from NAT_1:sch 1(A5, A6); :: thesis: ( ( for i being Element of NAT st 1 <= i & i <= width G & 2 <= len f holds
L~ f meets rng (Col G,i) ) & ( for i, j, k, m being Element of NAT st 1 <= i & i <= width G & 1 <= j & j <= width G & k in dom f & m in dom f & f /. k in rng (Col G,i) & ( for n being Element of NAT st n in dom f & f /. n in rng (Col G,i) holds
n <= k ) & k < m & f /. m in rng (Col G,j) holds
i < j ) )

thus for i being Element of NAT st 1 <= i & i <= width G & 2 <= len f holds
L~ f meets rng (Col G,i) :: thesis: for i, j, k, m being Element of NAT st 1 <= i & i <= width G & 1 <= j & j <= width G & k in dom f & m in dom f & f /. k in rng (Col G,i) & ( for n being Element of NAT st n in dom f & f /. n in rng (Col G,i) holds
n <= k ) & k < m & f /. m in rng (Col G,j) holds
i < j
proof
let i be Element of NAT ; :: thesis: ( 1 <= i & i <= width G & 2 <= len f implies L~ f meets rng (Col G,i) )
assume A17: ( 1 <= i & i <= width G & 2 <= len f ) ; :: thesis: L~ f meets rng (Col G,i)
then consider k being Element of NAT such that
A18: ( k in dom f & f /. k in rng (Col G,i) ) by A16;
f /. k in L~ f by A17, A18, Th16;
then (L~ f) /\ (rng (Col G,i)) <> {} by A18, XBOOLE_0:def 4;
hence L~ f meets rng (Col G,i) by XBOOLE_0:def 7; :: thesis: verum
end;
let m, k, i, j be Element of NAT ; :: thesis: ( 1 <= m & m <= width G & 1 <= k & k <= width G & i in dom f & j in dom f & f /. i in rng (Col G,m) & ( for n being Element of NAT st n in dom f & f /. n in rng (Col G,m) holds
n <= i ) & i < j & f /. j in rng (Col G,k) implies m < k )

assume A19: ( 1 <= m & m <= width G & 1 <= k & k <= width G & i in dom f & j in dom f & f /. i in rng (Col G,m) & ( for n being Element of NAT st n in dom f & f /. n in rng (Col G,m) holds
n <= i ) & i < j & f /. j in rng (Col G,k) ) ; :: thesis: m < k
then A20: ( 1 <= i & i <= len f & 1 <= j & j <= len f ) by FINSEQ_3:27;
now
per cases ( m = width G or m <> width G ) ;
case m <> width G ; :: thesis: m < k
then m < width G by A19, XXREAL_0:1;
then ( 1 <= m + 1 & m + 1 <= width G ) by NAT_1:11, NAT_1:13;
then ( m + 1 in Seg (width G) & m in Seg (width G) ) by A19, FINSEQ_1:3;
then A21: ( i + 1 in dom f & f /. (i + 1) in rng (Col G,(m + 1)) & m + 1 in Seg (width G) ) by A1, A2, A3, A19, Th48;
defpred S2[ set ] means for n, l being Element of NAT st n = $1 & n > 0 & i + n in dom f & f /. (i + n) in rng (Col G,l) & l in Seg (width G) holds
m < l;
A22: S2[ 0 ] ;
A23: for o being Element of NAT st S2[o] holds
S2[o + 1]
proof
let o be Element of NAT ; :: thesis: ( S2[o] implies S2[o + 1] )
assume A24: S2[o] ; :: thesis: S2[o + 1]
let n, l be Element of NAT ; :: thesis: ( n = o + 1 & n > 0 & i + n in dom f & f /. (i + n) in rng (Col G,l) & l in Seg (width G) implies m < l )
assume A25: ( n = o + 1 & n > 0 & i + n in dom f & f /. (i + n) in rng (Col G,l) & l in Seg (width G) ) ; :: thesis: m < l
now
per cases ( o = 0 or o <> 0 ) ;
suppose o = 0 ; :: thesis: m < l
then ( l = m + 1 & m < m + 1 ) by A21, A25, Th20, NAT_1:13;
hence m < l ; :: thesis: verum
end;
suppose o <> 0 ; :: thesis: m < l
then A26: 0 < o ;
A27: ( 1 <= i & i + n <= len f & i + n = (i + o) + 1 & i + o <= (i + o) + 1 & i <= i + o ) by A19, A25, FINSEQ_3:27, NAT_1:12;
then ( 1 <= i + o & i + o <= len f ) by XXREAL_0:2;
then A28: i + o in dom f by FINSEQ_3:27;
then consider l1 being Element of NAT such that
A29: ( l1 in Seg (width G) & f /. (i + o) in rng (Col G,l1) ) by A3, Th46;
A30: m < l1 by A24, A26, A28, A29;
now
per cases ( f /. (i + n) in rng (Col G,l1) or for k being Element of NAT st f /. (i + n) in rng (Col G,k) & k in Seg (width G) holds
abs (l1 - k) = 1 )
by A3, A25, A27, A28, A29, Th47;
suppose f /. (i + n) in rng (Col G,l1) ; :: thesis: m < l
hence m < l by A25, A29, A30, Th20; :: thesis: verum
end;
suppose for k being Element of NAT st f /. (i + n) in rng (Col G,k) & k in Seg (width G) holds
abs (l1 - k) = 1 ; :: thesis: m < l
then A31: abs (l1 - l) = 1 by A25;
now
per cases ( ( l1 > l & l1 = l + 1 ) or ( l1 < l & l = l1 + 1 ) ) by A31, Th1;
suppose ( l1 > l & l1 = l + 1 ) ; :: thesis: m < l
then A32: m <= l by A30, NAT_1:13;
now
per cases ( m = l or m < l ) by A32, XXREAL_0:1;
end;
end;
hence m < l ; :: thesis: verum
end;
suppose ( l1 < l & l = l1 + 1 ) ; :: thesis: m < l
hence m < l by A30, XXREAL_0:2; :: thesis: verum
end;
end;
end;
hence m < l ; :: thesis: verum
end;
end;
end;
hence m < l ; :: thesis: verum
end;
end;
end;
hence m < l ; :: thesis: verum
end;
A33: for o being Element of NAT holds S2[o] from NAT_1:sch 1(A22, A23);
A34: ( 0 < j - i & i <= j ) by A19, XREAL_1:52;
reconsider l = j - i as Element of NAT by A19, INT_1:18;
( i + l = j & k in Seg (width G) ) by A19, FINSEQ_1:3;
hence m < k by A19, A33, A34; :: thesis: verum
end;
end;
end;
hence m < k ; :: thesis: verum