:: Adjacency Concept for Pairs of Natural Numbers :: by Yatsuka Nakamura and Andrzej Trybulec :: :: Received June 10, 1996 :: Copyright (c) 1996-2012 Association of Mizar Users begin definition let i1, i2 be Element of NAT ; predi1,i2 are_adjacent1 means :Def1: :: GOBRD10:def 1 ( i2 = i1 + 1 or i1 = i2 + 1 ); symmetry for i1, i2 being Element of NAT holds ( ( not i2 = i1 + 1 & not i1 = i2 + 1 ) or i1 = i2 + 1 or i2 = i1 + 1 ) ; irreflexivity for i1 being Element of NAT holds ( not i1 = i1 + 1 & not i1 = i1 + 1 ) ; end; :: deftheorem Def1 defines are_adjacent1 GOBRD10:def_1_:_ for i1, i2 being Element of NAT holds ( i1,i2 are_adjacent1 iff ( i2 = i1 + 1 or i1 = i2 + 1 ) ); theorem Th1: :: GOBRD10:1 for i1, i2 being Element of NAT st i1,i2 are_adjacent1 holds i1 + 1,i2 + 1 are_adjacent1 proofend; theorem Th2: :: GOBRD10:2 for i1, i2 being Element of NAT st i1,i2 are_adjacent1 & 1 <= i1 & 1 <= i2 holds i1 -' 1,i2 -' 1 are_adjacent1 proofend; definition let i1, j1, i2, j2 be Element of NAT ; predi1,j1,i2,j2 are_adjacent2 means :Def2: :: GOBRD10:def 2 ( ( i1,i2 are_adjacent1 & j1 = j2 ) or ( i1 = i2 & j1,j2 are_adjacent1 ) ); end; :: deftheorem Def2 defines are_adjacent2 GOBRD10:def_2_:_ for i1, j1, i2, j2 being Element of NAT holds ( i1,j1,i2,j2 are_adjacent2 iff ( ( i1,i2 are_adjacent1 & j1 = j2 ) or ( i1 = i2 & j1,j2 are_adjacent1 ) ) ); theorem Th3: :: GOBRD10:3 for i1, i2, j1, j2 being Element of NAT st i1,j1,i2,j2 are_adjacent2 holds i1 + 1,j1 + 1,i2 + 1,j2 + 1 are_adjacent2 proofend; theorem :: GOBRD10:4 for i1, i2, j1, j2 being Element of NAT st i1,j1,i2,j2 are_adjacent2 & 1 <= i1 & 1 <= i2 & 1 <= j1 & 1 <= j2 holds i1 -' 1,j1 -' 1,i2 -' 1,j2 -' 1 are_adjacent2 proofend; Lm1: now__::_thesis:_for_n,_i,_j_being_Element_of_NAT_st_1_<=_j_&_j_<=_n_holds_ (n_|->_i)_._j_=_i let n, i, j be Element of NAT ; ::_thesis: ( 1 <= j & j <= n implies (n |-> i) . j = i ) assume ( 1 <= j & j <= n ) ; ::_thesis: (n |-> i) . j = i then j in Seg n by FINSEQ_1:1; hence (n |-> i) . j = i by FINSEQ_2:57; ::_thesis: verum end; theorem Th5: :: GOBRD10:5 for n, i, j being Element of NAT st i <= n & j <= n holds ex fs1 being FinSequence of NAT st ( fs1 . 1 = i & fs1 . (len fs1) = j & len fs1 = ((i -' j) + (j -' i)) + 1 & ( for k, k1 being Element of NAT st 1 <= k & k <= len fs1 & k1 = fs1 . k holds k1 <= n ) & ( for i1 being Element of NAT st 1 <= i1 & i1 < len fs1 & not fs1 . (i1 + 1) = (fs1 /. i1) + 1 holds fs1 . i1 = (fs1 /. (i1 + 1)) + 1 ) ) proofend; theorem Th6: :: GOBRD10:6 for n, i, j being Element of NAT st i <= n & j <= n holds ex fs1 being FinSequence of NAT st ( fs1 . 1 = i & fs1 . (len fs1) = j & len fs1 = ((i -' j) + (j -' i)) + 1 & ( for k, k1 being Element of NAT st 1 <= k & k <= len fs1 & k1 = fs1 . k holds k1 <= n ) & ( for i1 being Element of NAT st 1 <= i1 & i1 < len fs1 holds fs1 /. i1,fs1 /. (i1 + 1) are_adjacent1 ) ) proofend; theorem Th7: :: GOBRD10:7 for n, m, i1, j1, i2, j2 being Element of NAT st i1 <= n & j1 <= m & i2 <= n & j2 <= m holds ex fs1, fs2 being FinSequence of NAT st ( ( for i, k1, k2 being Element of NAT st i in dom fs1 & k1 = fs1 . i & k2 = fs2 . i holds ( k1 <= n & k2 <= m ) ) & fs1 . 1 = i1 & fs1 . (len fs1) = i2 & fs2 . 1 = j1 & fs2 . (len fs2) = j2 & len fs1 = len fs2 & len fs1 = ((((i1 -' i2) + (i2 -' i1)) + (j1 -' j2)) + (j2 -' j1)) + 1 & ( for i being Element of NAT st 1 <= i & i < len fs1 holds fs1 /. i,fs2 /. i,fs1 /. (i + 1),fs2 /. (i + 1) are_adjacent2 ) ) proofend; theorem :: GOBRD10:8 for n, m being Element of NAT for S being set for Y being Subset of S for F being Matrix of n,m, bool S st ex i, j being Element of NAT st ( i in Seg n & j in Seg m & F * (i,j) c= Y ) & ( for i1, j1, i2, j2 being Element of NAT st i1 in Seg n & i2 in Seg n & j1 in Seg m & j2 in Seg m & i1,j1,i2,j2 are_adjacent2 holds ( F * (i1,j1) c= Y iff F * (i2,j2) c= Y ) ) holds for i, j being Element of NAT st i in Seg n & j in Seg m holds F * (i,j) c= Y proofend;