let f1, f2 be non constant standard clockwise_oriented special_circular_sequence; :: thesis: ( f1 is_sequence_on Gauge (C,n) & f1 /. 1 = (Gauge (C,n)) * ((X-SpanStart (C,n)),(Y-SpanStart (C,n))) & f1 /. 2 = (Gauge (C,n)) * (((X-SpanStart (C,n)) -' 1),(Y-SpanStart (C,n))) & ( for k being Nat st 1 <= k & k + 2 <= len f1 holds
( ( front_right_cell (f1,k,(Gauge (C,n))) misses C & front_left_cell (f1,k,(Gauge (C,n))) misses C implies f1 turns_left k, Gauge (C,n) ) & ( front_right_cell (f1,k,(Gauge (C,n))) misses C & front_left_cell (f1,k,(Gauge (C,n))) meets C implies f1 goes_straight k, Gauge (C,n) ) & ( front_right_cell (f1,k,(Gauge (C,n))) meets C implies f1 turns_right k, Gauge (C,n) ) ) ) & f2 is_sequence_on Gauge (C,n) & f2 /. 1 = (Gauge (C,n)) * ((X-SpanStart (C,n)),(Y-SpanStart (C,n))) & f2 /. 2 = (Gauge (C,n)) * (((X-SpanStart (C,n)) -' 1),(Y-SpanStart (C,n))) & ( for k being Nat st 1 <= k & k + 2 <= len f2 holds
( ( front_right_cell (f2,k,(Gauge (C,n))) misses C & front_left_cell (f2,k,(Gauge (C,n))) misses C implies f2 turns_left k, Gauge (C,n) ) & ( front_right_cell (f2,k,(Gauge (C,n))) misses C & front_left_cell (f2,k,(Gauge (C,n))) meets C implies f2 goes_straight k, Gauge (C,n) ) & ( front_right_cell (f2,k,(Gauge (C,n))) meets C implies f2 turns_right k, Gauge (C,n) ) ) ) implies f1 = f2 )

assume that
A1139: f1 is_sequence_on Gauge (C,n) and
A1140: f1 /. 1 = (Gauge (C,n)) * ((X-SpanStart (C,n)),(Y-SpanStart (C,n))) and
A1141: f1 /. 2 = (Gauge (C,n)) * (((X-SpanStart (C,n)) -' 1),(Y-SpanStart (C,n))) and
A1142: for k being Nat st 1 <= k & k + 2 <= len f1 holds
( ( front_right_cell (f1,k,(Gauge (C,n))) misses C & front_left_cell (f1,k,(Gauge (C,n))) misses C implies f1 turns_left k, Gauge (C,n) ) & ( front_right_cell (f1,k,(Gauge (C,n))) misses C & front_left_cell (f1,k,(Gauge (C,n))) meets C implies f1 goes_straight k, Gauge (C,n) ) & ( front_right_cell (f1,k,(Gauge (C,n))) meets C implies f1 turns_right k, Gauge (C,n) ) ) and
A1143: f2 is_sequence_on Gauge (C,n) and
A1144: f2 /. 1 = (Gauge (C,n)) * ((X-SpanStart (C,n)),(Y-SpanStart (C,n))) and
A1145: f2 /. 2 = (Gauge (C,n)) * (((X-SpanStart (C,n)) -' 1),(Y-SpanStart (C,n))) and
A1146: for k being Nat st 1 <= k & k + 2 <= len f2 holds
( ( front_right_cell (f2,k,(Gauge (C,n))) misses C & front_left_cell (f2,k,(Gauge (C,n))) misses C implies f2 turns_left k, Gauge (C,n) ) & ( front_right_cell (f2,k,(Gauge (C,n))) misses C & front_left_cell (f2,k,(Gauge (C,n))) meets C implies f2 goes_straight k, Gauge (C,n) ) & ( front_right_cell (f2,k,(Gauge (C,n))) meets C implies f2 turns_right k, Gauge (C,n) ) ) ; :: thesis: f1 = f2
defpred S1[ Nat] means f1 | $1 = f2 | $1;
A1147: for k being Nat st S1[k] holds
S1[k + 1]
proof
A1148: len f2 > 4 by GOBOARD7:34;
A1149: len f1 > 4 by GOBOARD7:34;
let k be Nat; :: thesis: ( S1[k] implies S1[k + 1] )
assume A1151: f1 | k = f2 | k ; :: thesis: S1[k + 1]
per cases ( k = 0 or k = 1 or k > 1 ) by NAT_1:25;
suppose W: k = 0 ; :: thesis: S1[k + 1]
( 1 <= len f1 & 1 <= len f2 ) by A1148, A1149, XXREAL_0:2;
then ( 1 in dom f1 & 1 in dom f2 ) by FINSEQ_3:25;
then W2: ( <*(f1 . 1)*> = <*(f1 /. 1)*> & <*(f2 . 1)*> = <*(f2 /. 1)*> ) by PARTFUN1:def 6;
W1: ( <*(f1 . 1)*> = f1 | 1 & <*(f2 . 1)*> = f2 | 1 ) by FINSEQ_5:20;
<*(f1 . 1)*> = <*(f2 . 1)*> by A1140, A1144, W2;
then f1 | 1 = f2 | 1 by W1;
hence S1[k + 1] by W; :: thesis: verum
end;
suppose A1153: k > 1 ; :: thesis: S1[k + 1]
A1154: f2 /. 1 = f2 /. (len f2) by FINSEQ_6:def 1;
A1155: f1 /. 1 = f1 /. (len f1) by FINSEQ_6:def 1;
now :: thesis: S1[k + 1]
per cases ( len f1 > k or k >= len f1 ) ;
suppose A1156: len f1 > k ; :: thesis: S1[k + 1]
set m = k -' 1;
A1157: 1 <= k -' 1 by A1153, NAT_D:49;
then A1158: (k -' 1) + 1 = k by NAT_D:43;
then A1159: front_right_cell (f1,(k -' 1),(Gauge (C,n))) = front_right_cell ((f1 | k),(k -' 1),(Gauge (C,n))) by A1139, A1156, A1157, GOBRD13:42;
A1160: k + 1 <= len f1 by A1156, NAT_1:13;
then A1167: k + 1 <= len f2 by NAT_1:13;
A1168: front_left_cell (f2,(k -' 1),(Gauge (C,n))) = front_left_cell ((f2 | k),(k -' 1),(Gauge (C,n))) by A1143, A1157, A1158, A1161, GOBRD13:42;
A1169: front_right_cell (f2,(k -' 1),(Gauge (C,n))) = front_right_cell ((f2 | k),(k -' 1),(Gauge (C,n))) by A1143, A1157, A1158, A1161, GOBRD13:42;
A1170: (k -' 1) + (1 + 1) = k + 1 by A1158;
A1171: front_left_cell (f1,(k -' 1),(Gauge (C,n))) = front_left_cell ((f1 | k),(k -' 1),(Gauge (C,n))) by A1139, A1156, A1157, A1158, GOBRD13:42;
now :: thesis: S1[k + 1]
per cases ( ( front_right_cell (f1,(k -' 1),(Gauge (C,n))) misses C & front_left_cell (f1,(k -' 1),(Gauge (C,n))) misses C ) or ( front_right_cell (f1,(k -' 1),(Gauge (C,n))) misses C & front_left_cell (f1,(k -' 1),(Gauge (C,n))) meets C ) or front_right_cell (f1,(k -' 1),(Gauge (C,n))) meets C ) ;
end;
end;
hence S1[k + 1] ; :: thesis: verum
end;
end;
end;
hence S1[k + 1] ; :: thesis: verum
end;
end;
end;
A1183: S1[ 0 ] ;
for k being Nat holds S1[k] from NAT_1:sch 2(A1183, A1147);
hence f1 = f2 by JORDAN9:2; :: thesis: verum