:: GOBOARD5  semantic presentation
theorem Th1: :: GOBOARD5:1
definition
let c1 be   
Matrix of 
(TOP-REAL 2);
let c2 be   
Nat;
func  v_strip c1,
c2 ->   Subset of 
(TOP-REAL 2) equals :
Def1: 
:: GOBOARD5:def 1
{ |[b1,b2]| where B is   Real, B is   Real : ( (a1 * a2,1) `1  <= b1 & b1 <= (a1 * (a2 + 1),1) `1  ) }  if ( 1 
<= a2 & 
a2 <  len a1 )
{ |[b1,b2]| where B is   Real, B is   Real : (a1 * a2,1) `1  <= b1 }  if a2 >=  len a1 otherwise { |[b1,b2]| where B is   Real, B is   Real : b1 <= (a1 * (a2 + 1),1) `1  } ;
coherence 
( ( 1 <= c2 & c2 <  len c1 implies { |[b1,b2]| where B is   Real, B is   Real : ( (c1 * c2,1) `1  <= b1 & b1 <= (c1 * (c2 + 1),1) `1  ) }  is   Subset of (TOP-REAL 2) ) & ( c2 >=  len c1 implies { |[b1,b2]| where B is   Real, B is   Real : (c1 * c2,1) `1  <= b1 }  is   Subset of (TOP-REAL 2) ) & ( (  not 1 <= c2 or  not c2 <  len c1 ) & not c2 >=  len c1 implies { |[b1,b2]| where B is   Real, B is   Real : b1 <= (c1 * (c2 + 1),1) `1  }  is   Subset of (TOP-REAL 2) ) )
 
correctness 
consistency 
for b1 being  Subset of (TOP-REAL 2)  st 1 <= c2 & c2 <  len c1 & c2 >=  len c1 holds 
( b1 = { |[b2,b3]| where B is   Real, B is   Real : ( (c1 * c2,1) `1  <= b2 & b2 <= (c1 * (c2 + 1),1) `1  ) }  iff b1 = { |[b2,b3]| where B is   Real, B is   Real : (c1 * c2,1) `1  <= b2 }  );
;
func  h_strip c1,
c2 ->   Subset of 
(TOP-REAL 2) equals :
Def2: 
:: GOBOARD5:def 2
{ |[b1,b2]| where B is   Real, B is   Real : ( (a1 * 1,a2) `2  <= b2 & b2 <= (a1 * 1,(a2 + 1)) `2  ) }  if ( 1 
<= a2 & 
a2 <  width a1 )
{ |[b1,b2]| where B is   Real, B is   Real : (a1 * 1,a2) `2  <= b2 }  if a2 >=  width a1 otherwise { |[b1,b2]| where B is   Real, B is   Real : b2 <= (a1 * 1,(a2 + 1)) `2  } ;
coherence 
( ( 1 <= c2 & c2 <  width c1 implies { |[b1,b2]| where B is   Real, B is   Real : ( (c1 * 1,c2) `2  <= b2 & b2 <= (c1 * 1,(c2 + 1)) `2  ) }  is   Subset of (TOP-REAL 2) ) & ( c2 >=  width c1 implies { |[b1,b2]| where B is   Real, B is   Real : (c1 * 1,c2) `2  <= b2 }  is   Subset of (TOP-REAL 2) ) & ( (  not 1 <= c2 or  not c2 <  width c1 ) & not c2 >=  width c1 implies { |[b1,b2]| where B is   Real, B is   Real : b2 <= (c1 * 1,(c2 + 1)) `2  }  is   Subset of (TOP-REAL 2) ) )
 
correctness 
consistency 
for b1 being  Subset of (TOP-REAL 2)  st 1 <= c2 & c2 <  width c1 & c2 >=  width c1 holds 
( b1 = { |[b2,b3]| where B is   Real, B is   Real : ( (c1 * 1,c2) `2  <= b3 & b3 <= (c1 * 1,(c2 + 1)) `2  ) }  iff b1 = { |[b2,b3]| where B is   Real, B is   Real : (c1 * 1,c2) `2  <= b3 }  );
;
 
end;
 
:: deftheorem Def1   defines v_strip GOBOARD5:def 1 : 
for 
b1 being  
Matrix of 
(TOP-REAL 2) for 
b2 being  
Nat holds 
 ( ( 1 
<= b2 & 
b2 <  len b1 implies  
v_strip b1,
b2 = { |[b3,b4]| where B is   Real, B is   Real : ( (b1 * b2,1) `1  <= b3 & b3 <= (b1 * (b2 + 1),1) `1  ) }  ) & ( 
b2 >=  len b1 implies  
v_strip b1,
b2 = { |[b3,b4]| where B is   Real, B is   Real : (b1 * b2,1) `1  <= b3 }  ) & ( (  not 1 
<= b2 or  not 
b2 <  len b1 ) & not 
b2 >=  len b1 implies  
v_strip b1,
b2 = { |[b3,b4]| where B is   Real, B is   Real : b3 <= (b1 * (b2 + 1),1) `1  }  ) );
:: deftheorem Def2   defines h_strip GOBOARD5:def 2 : 
for 
b1 being  
Matrix of 
(TOP-REAL 2) for 
b2 being  
Nat holds 
 ( ( 1 
<= b2 & 
b2 <  width b1 implies  
h_strip b1,
b2 = { |[b3,b4]| where B is   Real, B is   Real : ( (b1 * 1,b2) `2  <= b4 & b4 <= (b1 * 1,(b2 + 1)) `2  ) }  ) & ( 
b2 >=  width b1 implies  
h_strip b1,
b2 = { |[b3,b4]| where B is   Real, B is   Real : (b1 * 1,b2) `2  <= b4 }  ) & ( (  not 1 
<= b2 or  not 
b2 <  width b1 ) & not 
b2 >=  width b1 implies  
h_strip b1,
b2 = { |[b3,b4]| where B is   Real, B is   Real : b4 <= (b1 * 1,(b2 + 1)) `2  }  ) );
theorem Th2: :: GOBOARD5:2
theorem Th3: :: GOBOARD5:3
theorem Th4: :: GOBOARD5:4
theorem Th5: :: GOBOARD5:5
theorem Th6: :: GOBOARD5:6
theorem Th7: :: GOBOARD5:7
theorem Th8: :: GOBOARD5:8
theorem Th9: :: GOBOARD5:9
theorem Th10: :: GOBOARD5:10
theorem Th11: :: GOBOARD5:11
:: deftheorem Def3   defines cell GOBOARD5:def 3 : 
:: deftheorem Def4   defines s.c.c. GOBOARD5:def 4 : 
:: deftheorem Def5   defines standard GOBOARD5:def 5 : 
Lemma15: 
for b1 being  FinSequence of (TOP-REAL 2) holds   dom (X_axis b1) =  dom b1
 
Lemma16: 
for b1 being  FinSequence of (TOP-REAL 2) holds   dom (Y_axis b1) =  dom b1
 
theorem Th12: :: GOBOARD5:12
theorem Th13: :: GOBOARD5:13
definition
let c1 be  
standard special_circular_sequence;
let c2 be   
Nat;
assume E19: 
( 1 
<= c2 & 
c2 + 1 
<=  len c1 )
 ;
c2 <= c2 + 1
 
by NAT_1:29;
then 
c2 <=  len c1
 by E19, XREAL_1:2;
then E20: 
c2 in  dom c1
 by E19, FINSEQ_3:27;
then consider c3, 
c4 being   
Nat such that E21: 
( 
[c3,c4] in  Indices (GoB c1) & 
c1 /. c2 = (GoB c1) * c3,
c4 )
 
by Th12;
c2 + 1 
>= 1
 
by NAT_1:29;
then E22: 
c2 + 1 
in  dom c1
 by E19, FINSEQ_3:27;
then consider c5, 
c6 being   
Nat such that E23: 
( 
[c5,c6] in  Indices (GoB c1) & 
c1 /. (c2 + 1) = (GoB c1) * c5,
c6 )
 
by Th12;
E24: 
(abs (c3 - c5)) + (abs (c4 - c6)) = 1
 
by E20, E21, E22, E23, Th13;
func  right_cell c1,
c2 ->   Subset of 
(TOP-REAL 2) means :
Def6: 
:: GOBOARD5:def 6
for 
b1, 
b2, 
b3, 
b4 being  
Nat  st 
[b1,b2] in  Indices (GoB a1) & 
[b3,b4] in  Indices (GoB a1) & 
a1 /. a2 = (GoB a1) * b1,
b2 & 
a1 /. (a2 + 1) = (GoB a1) * b3,
b4 & not ( 
b1 = b3 & 
b2 + 1 
= b4 & 
a3 =  cell (GoB a1),
b1,
b2 ) & not ( 
b1 + 1 
= b3 & 
b2 = b4 & 
a3 =  cell (GoB a1),
b1,
(b2 -' 1) ) & not ( 
b1 = b3 + 1 & 
b2 = b4 & 
a3 =  cell (GoB a1),
b3,
b4 ) holds 
( 
b1 = b3 & 
b2 = b4 + 1 & 
a3 =  cell (GoB a1),
(b1 -' 1),
b4 );
existence 
ex b1 being  Subset of (TOP-REAL 2) st 
for b2, b3, b4, b5 being  Nat  st [b2,b3] in  Indices (GoB c1) & [b4,b5] in  Indices (GoB c1) & c1 /. c2 = (GoB c1) * b2,b3 & c1 /. (c2 + 1) = (GoB c1) * b4,b5 & not ( b2 = b4 & b3 + 1 = b5 & b1 =  cell (GoB c1),b2,b3 ) & not ( b2 + 1 = b4 & b3 = b5 & b1 =  cell (GoB c1),b2,(b3 -' 1) ) & not ( b2 = b4 + 1 & b3 = b5 & b1 =  cell (GoB c1),b4,b5 ) holds 
( b2 = b4 & b3 = b5 + 1 & b1 =  cell (GoB c1),(b2 -' 1),b5 )
 
uniqueness 
for b1, b2 being  Subset of (TOP-REAL 2)  st ( for b3, b4, b5, b6 being  Nat  st [b3,b4] in  Indices (GoB c1) & [b5,b6] in  Indices (GoB c1) & c1 /. c2 = (GoB c1) * b3,b4 & c1 /. (c2 + 1) = (GoB c1) * b5,b6 & not ( b3 = b5 & b4 + 1 = b6 & b1 =  cell (GoB c1),b3,b4 ) & not ( b3 + 1 = b5 & b4 = b6 & b1 =  cell (GoB c1),b3,(b4 -' 1) ) & not ( b3 = b5 + 1 & b4 = b6 & b1 =  cell (GoB c1),b5,b6 ) holds 
( b3 = b5 & b4 = b6 + 1 & b1 =  cell (GoB c1),(b3 -' 1),b6 ) ) & ( for b3, b4, b5, b6 being  Nat  st [b3,b4] in  Indices (GoB c1) & [b5,b6] in  Indices (GoB c1) & c1 /. c2 = (GoB c1) * b3,b4 & c1 /. (c2 + 1) = (GoB c1) * b5,b6 & not ( b3 = b5 & b4 + 1 = b6 & b2 =  cell (GoB c1),b3,b4 ) & not ( b3 + 1 = b5 & b4 = b6 & b2 =  cell (GoB c1),b3,(b4 -' 1) ) & not ( b3 = b5 + 1 & b4 = b6 & b2 =  cell (GoB c1),b5,b6 ) holds 
( b3 = b5 & b4 = b6 + 1 & b2 =  cell (GoB c1),(b3 -' 1),b6 ) ) holds 
b1 = b2
 
func  left_cell c1,
c2 ->   Subset of 
(TOP-REAL 2) means :
Def7: 
:: GOBOARD5:def 7
for 
b1, 
b2, 
b3, 
b4 being  
Nat  st 
[b1,b2] in  Indices (GoB a1) & 
[b3,b4] in  Indices (GoB a1) & 
a1 /. a2 = (GoB a1) * b1,
b2 & 
a1 /. (a2 + 1) = (GoB a1) * b3,
b4 & not ( 
b1 = b3 & 
b2 + 1 
= b4 & 
a3 =  cell (GoB a1),
(b1 -' 1),
b2 ) & not ( 
b1 + 1 
= b3 & 
b2 = b4 & 
a3 =  cell (GoB a1),
b1,
b2 ) & not ( 
b1 = b3 + 1 & 
b2 = b4 & 
a3 =  cell (GoB a1),
b3,
(b4 -' 1) ) holds 
( 
b1 = b3 & 
b2 = b4 + 1 & 
a3 =  cell (GoB a1),
b1,
b4 );
existence 
ex b1 being  Subset of (TOP-REAL 2) st 
for b2, b3, b4, b5 being  Nat  st [b2,b3] in  Indices (GoB c1) & [b4,b5] in  Indices (GoB c1) & c1 /. c2 = (GoB c1) * b2,b3 & c1 /. (c2 + 1) = (GoB c1) * b4,b5 & not ( b2 = b4 & b3 + 1 = b5 & b1 =  cell (GoB c1),(b2 -' 1),b3 ) & not ( b2 + 1 = b4 & b3 = b5 & b1 =  cell (GoB c1),b2,b3 ) & not ( b2 = b4 + 1 & b3 = b5 & b1 =  cell (GoB c1),b4,(b5 -' 1) ) holds 
( b2 = b4 & b3 = b5 + 1 & b1 =  cell (GoB c1),b2,b5 )
 
uniqueness 
for b1, b2 being  Subset of (TOP-REAL 2)  st ( for b3, b4, b5, b6 being  Nat  st [b3,b4] in  Indices (GoB c1) & [b5,b6] in  Indices (GoB c1) & c1 /. c2 = (GoB c1) * b3,b4 & c1 /. (c2 + 1) = (GoB c1) * b5,b6 & not ( b3 = b5 & b4 + 1 = b6 & b1 =  cell (GoB c1),(b3 -' 1),b4 ) & not ( b3 + 1 = b5 & b4 = b6 & b1 =  cell (GoB c1),b3,b4 ) & not ( b3 = b5 + 1 & b4 = b6 & b1 =  cell (GoB c1),b5,(b6 -' 1) ) holds 
( b3 = b5 & b4 = b6 + 1 & b1 =  cell (GoB c1),b3,b6 ) ) & ( for b3, b4, b5, b6 being  Nat  st [b3,b4] in  Indices (GoB c1) & [b5,b6] in  Indices (GoB c1) & c1 /. c2 = (GoB c1) * b3,b4 & c1 /. (c2 + 1) = (GoB c1) * b5,b6 & not ( b3 = b5 & b4 + 1 = b6 & b2 =  cell (GoB c1),(b3 -' 1),b4 ) & not ( b3 + 1 = b5 & b4 = b6 & b2 =  cell (GoB c1),b3,b4 ) & not ( b3 = b5 + 1 & b4 = b6 & b2 =  cell (GoB c1),b5,(b6 -' 1) ) holds 
( b3 = b5 & b4 = b6 + 1 & b2 =  cell (GoB c1),b3,b6 ) ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def6   defines right_cell GOBOARD5:def 6 : 
for 
b1 being 
standard special_circular_sequence for 
b2 being  
Nat  st 1 
<= b2 & 
b2 + 1 
<=  len b1 holds 
for 
b3 being  
Subset of 
(TOP-REAL 2) holds 
 ( 
b3 =  right_cell b1,
b2 iff for 
b4, 
b5, 
b6, 
b7 being  
Nat  st 
[b4,b5] in  Indices (GoB b1) & 
[b6,b7] in  Indices (GoB b1) & 
b1 /. b2 = (GoB b1) * b4,
b5 & 
b1 /. (b2 + 1) = (GoB b1) * b6,
b7 & not ( 
b4 = b6 & 
b5 + 1 
= b7 & 
b3 =  cell (GoB b1),
b4,
b5 ) & not ( 
b4 + 1 
= b6 & 
b5 = b7 & 
b3 =  cell (GoB b1),
b4,
(b5 -' 1) ) & not ( 
b4 = b6 + 1 & 
b5 = b7 & 
b3 =  cell (GoB b1),
b6,
b7 ) holds 
( 
b4 = b6 & 
b5 = b7 + 1 & 
b3 =  cell (GoB b1),
(b4 -' 1),
b7 ) );
:: deftheorem Def7   defines left_cell GOBOARD5:def 7 : 
for 
b1 being 
standard special_circular_sequence for 
b2 being  
Nat  st 1 
<= b2 & 
b2 + 1 
<=  len b1 holds 
for 
b3 being  
Subset of 
(TOP-REAL 2) holds 
 ( 
b3 =  left_cell b1,
b2 iff for 
b4, 
b5, 
b6, 
b7 being  
Nat  st 
[b4,b5] in  Indices (GoB b1) & 
[b6,b7] in  Indices (GoB b1) & 
b1 /. b2 = (GoB b1) * b4,
b5 & 
b1 /. (b2 + 1) = (GoB b1) * b6,
b7 & not ( 
b4 = b6 & 
b5 + 1 
= b7 & 
b3 =  cell (GoB b1),
(b4 -' 1),
b5 ) & not ( 
b4 + 1 
= b6 & 
b5 = b7 & 
b3 =  cell (GoB b1),
b4,
b5 ) & not ( 
b4 = b6 + 1 & 
b5 = b7 & 
b3 =  cell (GoB b1),
b6,
(b7 -' 1) ) holds 
( 
b4 = b6 & 
b5 = b7 + 1 & 
b3 =  cell (GoB b1),
b4,
b7 ) );
theorem Th14: :: GOBOARD5:14
theorem Th15: :: GOBOARD5:15
theorem Th16: :: GOBOARD5:16
theorem Th17: :: GOBOARD5:17
theorem Th18: :: GOBOARD5:18
theorem Th19: :: GOBOARD5:19
theorem Th20: :: GOBOARD5:20
theorem Th21: :: GOBOARD5:21
theorem Th22: :: GOBOARD5:22
theorem Th23: :: GOBOARD5:23
theorem Th24: :: GOBOARD5:24
theorem Th25: :: GOBOARD5:25
theorem Th26: :: GOBOARD5:26
theorem Th27: :: GOBOARD5:27
theorem Th28: :: GOBOARD5:28
for 
b1, 
b2, 
b3 being  
Nat for 
b4 being 
standard special_circular_sequence  st 1 
<= b1 & 
b1 + 1 
<=  len b4 & 
[(b2 + 1),b3] in  Indices (GoB b4) & 
[(b2 + 1),(b3 + 1)] in  Indices (GoB b4) & 
b4 /. b1 = (GoB b4) * (b2 + 1),
b3 & 
b4 /. (b1 + 1) = (GoB b4) * (b2 + 1),
(b3 + 1) holds 
(  
left_cell b4,
b1 =  cell (GoB b4),
b2,
b3 &  
right_cell b4,
b1 =  cell (GoB b4),
(b2 + 1),
b3 )
theorem Th29: :: GOBOARD5:29
for 
b1, 
b2, 
b3 being  
Nat for 
b4 being 
standard special_circular_sequence  st 1 
<= b1 & 
b1 + 1 
<=  len b4 & 
[b2,(b3 + 1)] in  Indices (GoB b4) & 
[(b2 + 1),(b3 + 1)] in  Indices (GoB b4) & 
b4 /. b1 = (GoB b4) * b2,
(b3 + 1) & 
b4 /. (b1 + 1) = (GoB b4) * (b2 + 1),
(b3 + 1) holds 
(  
left_cell b4,
b1 =  cell (GoB b4),
b2,
(b3 + 1) &  
right_cell b4,
b1 =  cell (GoB b4),
b2,
b3 )
theorem Th30: :: GOBOARD5:30
for 
b1, 
b2, 
b3 being  
Nat for 
b4 being 
standard special_circular_sequence  st 1 
<= b1 & 
b1 + 1 
<=  len b4 & 
[b2,(b3 + 1)] in  Indices (GoB b4) & 
[(b2 + 1),(b3 + 1)] in  Indices (GoB b4) & 
b4 /. b1 = (GoB b4) * (b2 + 1),
(b3 + 1) & 
b4 /. (b1 + 1) = (GoB b4) * b2,
(b3 + 1) holds 
(  
left_cell b4,
b1 =  cell (GoB b4),
b2,
b3 &  
right_cell b4,
b1 =  cell (GoB b4),
b2,
(b3 + 1) )
theorem Th31: :: GOBOARD5:31
for 
b1, 
b2, 
b3 being  
Nat for 
b4 being 
standard special_circular_sequence  st 1 
<= b1 & 
b1 + 1 
<=  len b4 & 
[(b2 + 1),(b3 + 1)] in  Indices (GoB b4) & 
[(b2 + 1),b3] in  Indices (GoB b4) & 
b4 /. b1 = (GoB b4) * (b2 + 1),
(b3 + 1) & 
b4 /. (b1 + 1) = (GoB b4) * (b2 + 1),
b3 holds 
(  
left_cell b4,
b1 =  cell (GoB b4),
(b2 + 1),
b3 &  
right_cell b4,
b1 =  cell (GoB b4),
b2,
b3 )
theorem Th32: :: GOBOARD5:32