set M = GoB v1,v2;
A2:
( len (GoB v1,v2) = len v1 & width (GoB v1,v2) = len v2 )
by Def1;
then A3:
( dom (GoB v1,v2) = dom v1 & width (GoB v1,v2) = len v2 )
by FINSEQ_3:31;
then A4:
Indices (GoB v1,v2) = [:(dom v1),(Seg (len v2)):]
by MATRIX_1:def 5;
thus
not GoB v1,v2 is empty-yielding
by A2, GOBOARD1:def 5; :: thesis: ( GoB v1,v2 is X_equal-in-line & GoB v1,v2 is Y_equal-in-column )
thus
GoB v1,v2 is X_equal-in-line
:: thesis: GoB v1,v2 is Y_equal-in-column proof
let n be
Element of
NAT ;
:: according to GOBOARD1:def 6 :: thesis: ( not n in dom (GoB v1,v2) or X_axis (Line (GoB v1,v2),n) is constant )
reconsider l =
Line (GoB v1,v2),
n as
FinSequence of
(TOP-REAL 2) ;
set x =
X_axis l;
assume A5:
n in dom (GoB v1,v2)
;
:: thesis: X_axis (Line (GoB v1,v2),n) is constant
A6:
(
len (X_axis l) = len l &
len l = width (GoB v1,v2) &
dom (X_axis l) = Seg (len (X_axis l)) )
by FINSEQ_1:def 3, GOBOARD1:def 3, MATRIX_1:def 8;
then A7:
dom (X_axis l) = dom l
by FINSEQ_3:31;
now let i,
j be
Element of
NAT ;
:: thesis: ( i in dom (X_axis l) & j in dom (X_axis l) implies (X_axis l) . i = (X_axis l) . j )assume A8:
(
i in dom (X_axis l) &
j in dom (X_axis l) )
;
:: thesis: (X_axis l) . i = (X_axis l) . jthen A9:
(
[n,i] in Indices (GoB v1,v2) &
[n,j] in Indices (GoB v1,v2) )
by A3, A4, A5, A6, ZFMISC_1:106;
reconsider r =
v1 . n,
s1 =
v2 . i,
s2 =
v2 . j as
Real ;
(
(GoB v1,v2) * n,
i = |[r,s1]| &
(GoB v1,v2) * n,
j = |[r,s2]| )
by A9, Def1;
then A10:
(
((GoB v1,v2) * n,i) `1 = r &
((GoB v1,v2) * n,j) `1 = r )
by EUCLID:56;
(
l /. i = l . i &
l /. j = l . j )
by A7, A8, PARTFUN1:def 8;
then
(
l /. i = (GoB v1,v2) * n,
i &
l /. j = (GoB v1,v2) * n,
j )
by A6, A8, MATRIX_1:def 8;
then
(
(X_axis l) . i = r &
(X_axis l) . j = r )
by A8, A10, GOBOARD1:def 3;
hence
(X_axis l) . i = (X_axis l) . j
;
:: thesis: verum end;
hence
X_axis (Line (GoB v1,v2),n) is
constant
by GOBOARD1:def 2;
:: thesis: verum
end;
thus
GoB v1,v2 is Y_equal-in-column
:: thesis: verumproof
let n be
Element of
NAT ;
:: according to GOBOARD1:def 7 :: thesis: ( not n in Seg (width (GoB v1,v2)) or Y_axis (Col (GoB v1,v2),n) is constant )
reconsider c =
Col (GoB v1,v2),
n as
FinSequence of
(TOP-REAL 2) ;
set y =
Y_axis c;
assume A11:
n in Seg (width (GoB v1,v2))
;
:: thesis: Y_axis (Col (GoB v1,v2),n) is constant
(
len (Y_axis c) = len c &
len c = len (GoB v1,v2) &
dom (Y_axis c) = Seg (len (Y_axis c)) )
by FINSEQ_1:def 3, GOBOARD1:def 4, MATRIX_1:def 9;
then A12:
(
dom (Y_axis c) = dom c &
dom c = dom (GoB v1,v2) )
by FINSEQ_3:31;
now let i,
j be
Element of
NAT ;
:: thesis: ( i in dom (Y_axis c) & j in dom (Y_axis c) implies (Y_axis c) . i = (Y_axis c) . j )assume A13:
(
i in dom (Y_axis c) &
j in dom (Y_axis c) )
;
:: thesis: (Y_axis c) . i = (Y_axis c) . jthen A14:
(
[i,n] in Indices (GoB v1,v2) &
[j,n] in Indices (GoB v1,v2) )
by A3, A4, A11, A12, ZFMISC_1:106;
reconsider r =
v2 . n,
s1 =
v1 . i,
s2 =
v1 . j as
Real ;
(
(GoB v1,v2) * i,
n = |[s1,r]| &
(GoB v1,v2) * j,
n = |[s2,r]| )
by A14, Def1;
then A15:
(
((GoB v1,v2) * i,n) `2 = r &
((GoB v1,v2) * j,n) `2 = r )
by EUCLID:56;
(
c /. i = c . i &
c /. j = c . j )
by A12, A13, PARTFUN1:def 8;
then
(
c /. i = (GoB v1,v2) * i,
n &
c /. j = (GoB v1,v2) * j,
n )
by A12, A13, MATRIX_1:def 9;
then
(
(Y_axis c) . i = r &
(Y_axis c) . j = r )
by A13, A15, GOBOARD1:def 4;
hence
(Y_axis c) . i = (Y_axis c) . j
;
:: thesis: verum end;
hence
Y_axis (Col (GoB v1,v2),n) is
constant
by GOBOARD1:def 2;
:: thesis: verum
end;