:: GOBOARD1  semantic presentation
theorem Th1: :: GOBOARD1:1
for 
b1, 
b2 being  
Real holds 
 (  
abs (b1 - b2) = 1 iff ( ( 
b1 > b2 & 
b1 = b2 + 1 ) or ( 
b1 < b2 & 
b2 = b1 + 1 ) ) )
theorem Th2: :: GOBOARD1:2
for 
b1, 
b2, 
b3, 
b4 being  
Nat holds 
 ( 
(abs (b1 - b2)) + (abs (b3 - b4)) = 1 iff ( (  
abs (b1 - b2) = 1 & 
b3 = b4 ) or (  
abs (b3 - b4) = 1 & 
b1 = b2 ) ) )
theorem Th3: :: GOBOARD1:3
for 
b1 being  
Nat holds 
 ( 
b1 > 1 iff ex 
b2 being  
Nat st 
( 
b1 = b2 + 1 & 
b2 > 0 ) )
theorem Th4: :: GOBOARD1:4
canceled; 
theorem Th5: :: GOBOARD1:5
canceled; 
theorem Th6: :: GOBOARD1:6
canceled; 
theorem Th7: :: GOBOARD1:7
theorem Th8: :: GOBOARD1:8
canceled; 
theorem Th9: :: GOBOARD1:9
canceled; 
:: deftheorem Def1   defines increasing GOBOARD1:def 1 : 
:: deftheorem Def2   defines constant GOBOARD1:def 2 : 
:: deftheorem Def3   defines X_axis GOBOARD1:def 3 : 
:: deftheorem Def4   defines Y_axis GOBOARD1:def 4 : 
theorem Th10: :: GOBOARD1:10
canceled; 
theorem Th11: :: GOBOARD1:11
canceled; 
theorem Th12: :: GOBOARD1:12
canceled; 
theorem Th13: :: GOBOARD1:13
canceled; 
theorem Th14: :: GOBOARD1:14
theorem Th15: :: GOBOARD1:15
theorem Th16: :: GOBOARD1:16
theorem Th17: :: GOBOARD1:17
:: deftheorem Def5   defines empty-yielding GOBOARD1:def 5 : 
:: deftheorem Def6   defines X_equal-in-line GOBOARD1:def 6 : 
:: deftheorem Def7   defines Y_equal-in-column GOBOARD1:def 7 : 
:: deftheorem Def8   defines Y_increasing-in-line GOBOARD1:def 8 : 
:: deftheorem Def9   defines X_increasing-in-column GOBOARD1:def 9 : 
Lemma17: 
for b1 being non empty  set 
 for b2 being  Matrix of b1 holds 
 ( not b2 is empty-yielding iff ( 0 <  len b2 & 0 <  width b2 ) )
 
theorem Th18: :: GOBOARD1:18
canceled; 
theorem Th19: :: GOBOARD1:19
theorem Th20: :: GOBOARD1:20
theorem Th21: :: GOBOARD1:21
theorem Th22: :: GOBOARD1:22
theorem Th23: :: GOBOARD1:23
theorem Th24: :: GOBOARD1:24
definition
let c1 be   
Go-board;
let c2 be   
Nat;
assume E21: 
( 
c2 in  Seg (width c1) &  
width c1 > 1 )
 ;
func  DelCol c1,
c2 ->   Go-board means :
Def10: 
:: GOBOARD1:def 10
(  
len a3 =  len a1 & ( for 
b1 being  
Nat  st 
b1 in  dom a1 holds 
a3 . b1 =  Del (Line a1,b1),
a2 ) );
existence 
ex b1 being  Go-board st 
(  len b1 =  len c1 & ( for b2 being  Nat  st b2 in  dom c1 holds 
b1 . b2 =  Del (Line c1,b2),c2 ) )
 
uniqueness 
for b1, b2 being  Go-board  st  len b1 =  len c1 & ( for b3 being  Nat  st b3 in  dom c1 holds 
b1 . b3 =  Del (Line c1,b3),c2 ) &  len b2 =  len c1 & ( for b3 being  Nat  st b3 in  dom c1 holds 
b2 . b3 =  Del (Line c1,b3),c2 ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def10   defines DelCol GOBOARD1:def 10 : 
theorem Th25: :: GOBOARD1:25
theorem Th26: :: GOBOARD1:26
theorem Th27: :: GOBOARD1:27
theorem Th28: :: GOBOARD1:28
theorem Th29: :: GOBOARD1:29
theorem Th30: :: GOBOARD1:30
theorem Th31: :: GOBOARD1:31
theorem Th32: :: GOBOARD1:32
theorem Th33: :: GOBOARD1:33
theorem Th34: :: GOBOARD1:34
theorem Th35: :: GOBOARD1:35
theorem Th36: :: GOBOARD1:36
theorem Th37: :: GOBOARD1:37
definition
let c1 be    
set ;
let c2 be    
FinSequence of 
c1;
let c3 be   
Matrix of 
c1;
pred c2 is_sequence_on c3 means :
Def11: 
:: GOBOARD1:def 11
( ( for 
b1 being  
Nat  st 
b1 in  dom a2 holds 
ex 
b2, 
b3 being  
Nat st 
( 
[b2,b3] in  Indices a3 & 
a2 /. b1 = a3 * b2,
b3 ) ) & ( for 
b1 being  
Nat  st 
b1 in  dom a2 & 
b1 + 1 
in  dom a2 holds 
for 
b2, 
b3, 
b4, 
b5 being  
Nat  st 
[b2,b3] in  Indices a3 & 
[b4,b5] in  Indices a3 & 
a2 /. b1 = a3 * b2,
b3 & 
a2 /. (b1 + 1) = a3 * b4,
b5 holds 
(abs (b2 - b4)) + (abs (b3 - b5)) = 1 ) );
 
end;
 
:: deftheorem Def11   defines is_sequence_on GOBOARD1:def 11 : 
for 
b1 being   
set  for 
b2 being   
FinSequence of 
b1 for 
b3 being  
Matrix of 
b1 holds 
 ( 
b2 is_sequence_on b3 iff ( ( for 
b4 being  
Nat  st 
b4 in  dom b2 holds 
ex 
b5, 
b6 being  
Nat st 
( 
[b5,b6] in  Indices b3 & 
b2 /. b4 = b3 * b5,
b6 ) ) & ( for 
b4 being  
Nat  st 
b4 in  dom b2 & 
b4 + 1 
in  dom b2 holds 
for 
b5, 
b6, 
b7, 
b8 being  
Nat  st 
[b5,b6] in  Indices b3 & 
[b7,b8] in  Indices b3 & 
b2 /. b4 = b3 * b5,
b6 & 
b2 /. (b4 + 1) = b3 * b7,
b8 holds 
(abs (b5 - b7)) + (abs (b6 - b8)) = 1 ) ) );
Lemma31: 
for b1 being   set 
 for b2 being  Matrix of b1 holds   <*> b1 is_sequence_on b2
 
theorem Th38: :: GOBOARD1:38
theorem Th39: :: GOBOARD1:39
for 
b1, 
b2 being  
FinSequence of 
(TOP-REAL 2) for 
b3 being   
set  for 
b4 being  
Matrix of 
b3  st ( for 
b5 being  
Nat  st 
b5 in  dom b1 holds 
ex 
b6, 
b7 being  
Nat st 
( 
[b6,b7] in  Indices b4 & 
b1 /. b5 = b4 * b6,
b7 ) ) & ( for 
b5 being  
Nat  st 
b5 in  dom b2 holds 
ex 
b6, 
b7 being  
Nat st 
( 
[b6,b7] in  Indices b4 & 
b2 /. b5 = b4 * b6,
b7 ) ) holds 
for 
b5 being  
Nat  st 
b5 in  dom (b1 ^ b2) holds 
ex 
b6, 
b7 being  
Nat st 
( 
[b6,b7] in  Indices b4 & 
(b1 ^ b2) /. b5 = b4 * b6,
b7 )
theorem Th40: :: GOBOARD1:40
for 
b1, 
b2 being  
FinSequence of 
(TOP-REAL 2) for 
b3 being   
set  for 
b4 being  
Matrix of 
b3  st ( for 
b5 being  
Nat  st 
b5 in  dom b1 & 
b5 + 1 
in  dom b1 holds 
for 
b6, 
b7, 
b8, 
b9 being  
Nat  st 
[b6,b7] in  Indices b4 & 
[b8,b9] in  Indices b4 & 
b1 /. b5 = b4 * b6,
b7 & 
b1 /. (b5 + 1) = b4 * b8,
b9 holds 
(abs (b6 - b8)) + (abs (b7 - b9)) = 1 ) & ( for 
b5 being  
Nat  st 
b5 in  dom b2 & 
b5 + 1 
in  dom b2 holds 
for 
b6, 
b7, 
b8, 
b9 being  
Nat  st 
[b6,b7] in  Indices b4 & 
[b8,b9] in  Indices b4 & 
b2 /. b5 = b4 * b6,
b7 & 
b2 /. (b5 + 1) = b4 * b8,
b9 holds 
(abs (b6 - b8)) + (abs (b7 - b9)) = 1 ) & ( for 
b5, 
b6, 
b7, 
b8 being  
Nat  st 
[b5,b6] in  Indices b4 & 
[b7,b8] in  Indices b4 & 
b1 /. (len b1) = b4 * b5,
b6 & 
b2 /. 1 
= b4 * b7,
b8 &  
len b1 in  dom b1 & 1 
in  dom b2 holds 
(abs (b5 - b7)) + (abs (b6 - b8)) = 1 ) holds 
for 
b5 being  
Nat  st 
b5 in  dom (b1 ^ b2) & 
b5 + 1 
in  dom (b1 ^ b2) holds 
for 
b6, 
b7, 
b8, 
b9 being  
Nat  st 
[b6,b7] in  Indices b4 & 
[b8,b9] in  Indices b4 & 
(b1 ^ b2) /. b5 = b4 * b6,
b7 & 
(b1 ^ b2) /. (b5 + 1) = b4 * b8,
b9 holds 
(abs (b6 - b8)) + (abs (b7 - b9)) = 1
theorem Th41: :: GOBOARD1:41
theorem Th42: :: GOBOARD1:42
theorem Th43: :: GOBOARD1:43
theorem Th44: :: GOBOARD1:44
theorem Th45: :: GOBOARD1:45
for 
b1 being  
Go-board for 
b2 being  
FinSequence of 
(TOP-REAL 2)  st 1 
<=  len b2 & 
b2 /. 1 
in  rng (Line b1,1) & 
b2 /. (len b2) in  rng (Line b1,(len b1)) & 
b2 is_sequence_on b1 holds 
( ( for 
b3 being  
Nat  st 1 
<= b3 & 
b3 <=  len b1 holds 
ex 
b4 being  
Nat st 
( 
b4 in  dom b2 & 
b2 /. b4 in  rng (Line b1,b3) ) ) & ( for 
b3 being  
Nat  st 1 
<= b3 & 
b3 <=  len b1 & 2 
<=  len b2 holds  
L~ b2 meets  rng (Line b1,b3) ) & ( for 
b3, 
b4, 
b5, 
b6 being  
Nat  st 1 
<= b3 & 
b3 <=  len b1 & 1 
<= b4 & 
b4 <=  len b1 & 
b5 in  dom b2 & 
b6 in  dom b2 & 
b2 /. b5 in  rng (Line b1,b3) & ( for 
b7 being  
Nat  st 
b7 in  dom b2 & 
b2 /. b7 in  rng (Line b1,b3) holds 
b7 <= b5 ) & 
b5 < b6 & 
b2 /. b6 in  rng (Line b1,b4) holds 
b3 < b4 ) )
theorem Th46: :: GOBOARD1:46
theorem Th47: :: GOBOARD1:47
theorem Th48: :: GOBOARD1:48
theorem Th49: :: GOBOARD1:49
for 
b1 being  
Go-board for 
b2 being  
FinSequence of 
(TOP-REAL 2)  st 1 
<=  len b2 & 
b2 /. 1 
in  rng (Col b1,1) & 
b2 /. (len b2) in  rng (Col b1,(width b1)) & 
b2 is_sequence_on b1 holds 
( ( for 
b3 being  
Nat  st 1 
<= b3 & 
b3 <=  width b1 holds 
ex 
b4 being  
Nat st 
( 
b4 in  dom b2 & 
b2 /. b4 in  rng (Col b1,b3) ) ) & ( for 
b3 being  
Nat  st 1 
<= b3 & 
b3 <=  width b1 & 2 
<=  len b2 holds  
L~ b2 meets  rng (Col b1,b3) ) & ( for 
b3, 
b4, 
b5, 
b6 being  
Nat  st 1 
<= b3 & 
b3 <=  width b1 & 1 
<= b4 & 
b4 <=  width b1 & 
b5 in  dom b2 & 
b6 in  dom b2 & 
b2 /. b5 in  rng (Col b1,b3) & ( for 
b7 being  
Nat  st 
b7 in  dom b2 & 
b2 /. b7 in  rng (Col b1,b3) holds 
b7 <= b5 ) & 
b5 < b6 & 
b2 /. b6 in  rng (Col b1,b4) holds 
b3 < b4 ) )
theorem Th50: :: GOBOARD1:50
theorem Th51: :: GOBOARD1:51
theorem Th52: :: GOBOARD1:52
theorem Th53: :: GOBOARD1:53