let D be non empty set ; for A being Matrix of D
for Bx, By, Cx, Cy being finite without_zero Subset of NAT st [:Bx,By:] c= Indices A & [:Cx,Cy:] c= Indices A holds
for B being Matrix of card Bx, card By,D
for C being Matrix of card Cx, card Cy,D st ( for i, j, bi, bj, ci, cj being Nat st [i,j] in [:Bx,By:] /\ [:Cx,Cy:] & bi = ((Sgm Bx) ") . i & bj = ((Sgm By) ") . j & ci = ((Sgm Cx) ") . i & cj = ((Sgm Cy) ") . j holds
B * (bi,bj) = C * (ci,cj) ) holds
ex M being Matrix of len A, width A,D st
( Segm (M,Bx,By) = B & Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) )
let A be Matrix of D; for Bx, By, Cx, Cy being finite without_zero Subset of NAT st [:Bx,By:] c= Indices A & [:Cx,Cy:] c= Indices A holds
for B being Matrix of card Bx, card By,D
for C being Matrix of card Cx, card Cy,D st ( for i, j, bi, bj, ci, cj being Nat st [i,j] in [:Bx,By:] /\ [:Cx,Cy:] & bi = ((Sgm Bx) ") . i & bj = ((Sgm By) ") . j & ci = ((Sgm Cx) ") . i & cj = ((Sgm Cy) ") . j holds
B * (bi,bj) = C * (ci,cj) ) holds
ex M being Matrix of len A, width A,D st
( Segm (M,Bx,By) = B & Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) )
let Bx, By, Cx, Cy be finite without_zero Subset of NAT; ( [:Bx,By:] c= Indices A & [:Cx,Cy:] c= Indices A implies for B being Matrix of card Bx, card By,D
for C being Matrix of card Cx, card Cy,D st ( for i, j, bi, bj, ci, cj being Nat st [i,j] in [:Bx,By:] /\ [:Cx,Cy:] & bi = ((Sgm Bx) ") . i & bj = ((Sgm By) ") . j & ci = ((Sgm Cx) ") . i & cj = ((Sgm Cy) ") . j holds
B * (bi,bj) = C * (ci,cj) ) holds
ex M being Matrix of len A, width A,D st
( Segm (M,Bx,By) = B & Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) ) )
assume that
A1:
[:Bx,By:] c= Indices A
and
A2:
[:Cx,Cy:] c= Indices A
; for B being Matrix of card Bx, card By,D
for C being Matrix of card Cx, card Cy,D st ( for i, j, bi, bj, ci, cj being Nat st [i,j] in [:Bx,By:] /\ [:Cx,Cy:] & bi = ((Sgm Bx) ") . i & bj = ((Sgm By) ") . j & ci = ((Sgm Cx) ") . i & cj = ((Sgm Cy) ") . j holds
B * (bi,bj) = C * (ci,cj) ) holds
ex M being Matrix of len A, width A,D st
( Segm (M,Bx,By) = B & Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) )
set w = width A;
set l = len A;
set cy = card Cy;
set cx = card Cx;
set bY = card By;
set bx = card Bx;
let B be Matrix of card Bx, card By,D; for C being Matrix of card Cx, card Cy,D st ( for i, j, bi, bj, ci, cj being Nat st [i,j] in [:Bx,By:] /\ [:Cx,Cy:] & bi = ((Sgm Bx) ") . i & bj = ((Sgm By) ") . j & ci = ((Sgm Cx) ") . i & cj = ((Sgm Cy) ") . j holds
B * (bi,bj) = C * (ci,cj) ) holds
ex M being Matrix of len A, width A,D st
( Segm (M,Bx,By) = B & Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) )
let C be Matrix of card Cx, card Cy,D; ( ( for i, j, bi, bj, ci, cj being Nat st [i,j] in [:Bx,By:] /\ [:Cx,Cy:] & bi = ((Sgm Bx) ") . i & bj = ((Sgm By) ") . j & ci = ((Sgm Cx) ") . i & cj = ((Sgm Cy) ") . j holds
B * (bi,bj) = C * (ci,cj) ) implies ex M being Matrix of len A, width A,D st
( Segm (M,Bx,By) = B & Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) ) )
assume A3:
for i, j, bi, bj, ci, cj being Nat st [i,j] in [:Bx,By:] /\ [:Cx,Cy:] & bi = ((Sgm Bx) ") . i & bj = ((Sgm By) ") . j & ci = ((Sgm Cx) ") . i & cj = ((Sgm Cy) ") . j holds
B * (bi,bj) = C * (ci,cj)
; ex M being Matrix of len A, width A,D st
( Segm (M,Bx,By) = B & Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) )
A5:
rng (Sgm By) = By
by FINSEQ_1:def 14;
defpred S1[ set , set , set ] means for i, j being Nat st $1 = i & $2 = j holds
( ( [i,j] in [:Bx,By:] implies ( ex m, n being Nat st
( m in dom (Sgm Bx) & n in dom (Sgm By) & (Sgm Bx) . m = i & (Sgm By) . n = j ) & ( for m, n being Nat st m in dom (Sgm Bx) & n in dom (Sgm By) & (Sgm Bx) . m = i & (Sgm By) . n = j holds
$3 = B * (m,n) ) ) ) & ( [i,j] in [:Cx,Cy:] implies ( ex m, n being Nat st
( m in dom (Sgm Cx) & n in dom (Sgm Cy) & (Sgm Cx) . m = i & (Sgm Cy) . n = j ) & ( for m, n being Nat st m in dom (Sgm Cx) & n in dom (Sgm Cy) & (Sgm Cx) . m = i & (Sgm Cy) . n = j holds
$3 = C * (m,n) ) ) ) & ( not [i,j] in [:Bx,By:] \/ [:Cx,Cy:] implies $3 = A * (i,j) ) );
A7:
rng (Sgm Bx) = Bx
by FINSEQ_1:def 14;
A8:
dom (Sgm By) = Seg (card By)
by FINSEQ_3:40;
A9:
Sgm By is one-to-one
by FINSEQ_3:92;
A10:
Sgm Bx is one-to-one
by FINSEQ_3:92;
A12:
rng (Sgm Cy) = Cy
by FINSEQ_1:def 14;
A13:
Sgm Cy is one-to-one
by FINSEQ_3:92;
A15:
rng (Sgm Cx) = Cx
by FINSEQ_1:def 14;
A16:
Sgm Cx is one-to-one
by FINSEQ_3:92;
A17:
for i, j being Nat st [i,j] in [:(Seg (len A)),(Seg (width A)):] holds
ex x being Element of D st S1[i,j,x]
proof
let i,
j be
Nat;
( [i,j] in [:(Seg (len A)),(Seg (width A)):] implies ex x being Element of D st S1[i,j,x] )
assume
[i,j] in [:(Seg (len A)),(Seg (width A)):]
;
ex x being Element of D st S1[i,j,x]
per cases
( ( [i,j] in [:Bx,By:] & [i,j] in [:Cx,Cy:] ) or ( [i,j] in [:Bx,By:] & not [i,j] in [:Cx,Cy:] ) or ( not [i,j] in [:Bx,By:] & [i,j] in [:Cx,Cy:] ) or ( not [i,j] in [:Bx,By:] & not [i,j] in [:Cx,Cy:] ) )
;
suppose A18:
(
[i,j] in [:Bx,By:] &
[i,j] in [:Cx,Cy:] )
;
ex x being Element of D st S1[i,j,x]then
j in Cy
by ZFMISC_1:87;
then consider yC being
object such that A19:
yC in dom (Sgm Cy)
and A20:
(Sgm Cy) . yC = j
by A12, FUNCT_1:def 3;
j in By
by A18, ZFMISC_1:87;
then consider y being
object such that A21:
y in dom (Sgm By)
and A22:
(Sgm By) . y = j
by A5, FUNCT_1:def 3;
i in Cx
by A18, ZFMISC_1:87;
then consider xC being
object such that A23:
xC in dom (Sgm Cx)
and A24:
(Sgm Cx) . xC = i
by A15, FUNCT_1:def 3;
i in Bx
by A18, ZFMISC_1:87;
then consider x being
object such that A25:
x in dom (Sgm Bx)
and A26:
(Sgm Bx) . x = i
by A7, FUNCT_1:def 3;
reconsider x =
x,
y =
y as
Element of
NAT by A25, A21;
take BB =
B * (
x,
y);
S1[i,j,BB]A27:
now for m, n being Nat st m in dom (Sgm Cx) & n in dom (Sgm Cy) & (Sgm Cx) . m = i & (Sgm Cy) . n = j holds
BB = C * (m,n)let m,
n be
Nat;
( m in dom (Sgm Cx) & n in dom (Sgm Cy) & (Sgm Cx) . m = i & (Sgm Cy) . n = j implies BB = C * (m,n) )assume
(
m in dom (Sgm Cx) &
n in dom (Sgm Cy) &
(Sgm Cx) . m = i &
(Sgm Cy) . n = j )
;
BB = C * (m,n)then A28:
(
((Sgm Cx) ") . i = m &
((Sgm Cy) ") . j = n )
by A16, A13, FUNCT_1:32;
A29:
((Sgm By) ") . j = y
by A9, A21, A22, FUNCT_1:32;
(
[i,j] in [:Bx,By:] /\ [:Cx,Cy:] &
((Sgm Bx) ") . i = x )
by A10, A18, A25, A26, FUNCT_1:32, XBOOLE_0:def 4;
hence
BB = C * (
m,
n)
by A3, A29, A28;
verum end; now for m, n being Nat st m in dom (Sgm Bx) & n in dom (Sgm By) & (Sgm Bx) . m = i & (Sgm By) . n = j holds
BB = B * (m,n)let m,
n be
Nat;
( m in dom (Sgm Bx) & n in dom (Sgm By) & (Sgm Bx) . m = i & (Sgm By) . n = j implies BB = B * (m,n) )assume that A30:
m in dom (Sgm Bx)
and A31:
n in dom (Sgm By)
and A32:
(Sgm Bx) . m = i
and A33:
(Sgm By) . n = j
;
BB = B * (m,n)
x = m
by A10, A25, A26, A30, A32, FUNCT_1:def 4;
hence
BB = B * (
m,
n)
by A9, A21, A22, A31, A33, FUNCT_1:def 4;
verum end; hence
S1[
i,
j,
BB]
by A18, A25, A26, A21, A22, A23, A24, A19, A20, A27, XBOOLE_0:def 3;
verum end; suppose A34:
(
[i,j] in [:Bx,By:] & not
[i,j] in [:Cx,Cy:] )
;
ex x being Element of D st S1[i,j,x]then
j in By
by ZFMISC_1:87;
then consider y being
object such that A35:
y in dom (Sgm By)
and A36:
(Sgm By) . y = j
by A5, FUNCT_1:def 3;
i in Bx
by A34, ZFMISC_1:87;
then consider x being
object such that A37:
x in dom (Sgm Bx)
and A38:
(Sgm Bx) . x = i
by A7, FUNCT_1:def 3;
reconsider x =
x,
y =
y as
Element of
NAT by A37, A35;
take BB =
B * (
x,
y);
S1[i,j,BB]now for m, n being Nat st m in dom (Sgm Bx) & n in dom (Sgm By) & (Sgm Bx) . m = i & (Sgm By) . n = j holds
BB = B * (m,n)let m,
n be
Nat;
( m in dom (Sgm Bx) & n in dom (Sgm By) & (Sgm Bx) . m = i & (Sgm By) . n = j implies BB = B * (m,n) )assume that A39:
m in dom (Sgm Bx)
and A40:
n in dom (Sgm By)
and A41:
(Sgm Bx) . m = i
and A42:
(Sgm By) . n = j
;
BB = B * (m,n)
x = m
by A10, A37, A38, A39, A41, FUNCT_1:def 4;
hence
BB = B * (
m,
n)
by A9, A35, A36, A40, A42, FUNCT_1:def 4;
verum end; hence
S1[
i,
j,
BB]
by A34, A37, A38, A35, A36, XBOOLE_0:def 3;
verum end; suppose A43:
( not
[i,j] in [:Bx,By:] &
[i,j] in [:Cx,Cy:] )
;
ex x being Element of D st S1[i,j,x]then
j in Cy
by ZFMISC_1:87;
then consider y being
object such that A44:
y in dom (Sgm Cy)
and A45:
(Sgm Cy) . y = j
by A12, FUNCT_1:def 3;
i in Cx
by A43, ZFMISC_1:87;
then consider x being
object such that A46:
x in dom (Sgm Cx)
and A47:
(Sgm Cx) . x = i
by A15, FUNCT_1:def 3;
reconsider x =
x,
y =
y as
Element of
NAT by A46, A44;
take CC =
C * (
x,
y);
S1[i,j,CC]now for m, n being Nat st m in dom (Sgm Cx) & n in dom (Sgm Cy) & (Sgm Cx) . m = i & (Sgm Cy) . n = j holds
CC = C * (m,n)let m,
n be
Nat;
( m in dom (Sgm Cx) & n in dom (Sgm Cy) & (Sgm Cx) . m = i & (Sgm Cy) . n = j implies CC = C * (m,n) )assume that A48:
m in dom (Sgm Cx)
and A49:
n in dom (Sgm Cy)
and A50:
(Sgm Cx) . m = i
and A51:
(Sgm Cy) . n = j
;
CC = C * (m,n)
x = m
by A16, A46, A47, A48, A50, FUNCT_1:def 4;
hence
CC = C * (
m,
n)
by A13, A44, A45, A49, A51, FUNCT_1:def 4;
verum end; hence
S1[
i,
j,
CC]
by A43, A46, A47, A44, A45, XBOOLE_0:def 3;
verum end; suppose A52:
( not
[i,j] in [:Bx,By:] & not
[i,j] in [:Cx,Cy:] )
;
ex x being Element of D st S1[i,j,x]take
A * (
i,
j)
;
S1[i,j,A * (i,j)]thus
S1[
i,
j,
A * (
i,
j)]
by A52;
verum end; end;
end;
consider M being Matrix of len A, width A,D such that
A53:
for i, j being Nat st [i,j] in Indices M holds
S1[i,j,M * (i,j)]
from MATRIX_0:sch 2(A17);
set MB = Segm (M,Bx,By);
take
M
; ( Segm (M,Bx,By) = B & Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) )
A is Matrix of len A, width A,D
by MATRIX_0:51;
then A54:
Indices A = Indices M
by MATRIX_0:26;
A55:
dom (Sgm Bx) = Seg (card Bx)
by FINSEQ_3:40;
now for i, j being Nat st [i,j] in Indices (Segm (M,Bx,By)) holds
B * (i,j) = (Segm (M,Bx,By)) * (i,j)let i,
j be
Nat;
( [i,j] in Indices (Segm (M,Bx,By)) implies B * (i,j) = (Segm (M,Bx,By)) * (i,j) )assume A56:
[i,j] in Indices (Segm (M,Bx,By))
;
B * (i,j) = (Segm (M,Bx,By)) * (i,j)
card Bx <> 0
by A56, MATRIX_0:22;
then A57:
Indices (Segm (M,Bx,By)) = [:(Seg (card Bx)),(Seg (card By)):]
by MATRIX_0:23;
then A58:
j in Seg (card By)
by A56, ZFMISC_1:87;
then A59:
(Sgm By) . j in By
by A5, A8, FUNCT_1:def 3;
A60:
i in Seg (card Bx)
by A56, A57, ZFMISC_1:87;
then
(Sgm Bx) . i in Bx
by A7, A55, FUNCT_1:def 3;
then
[((Sgm Bx) . i),((Sgm By) . j)] in [:Bx,By:]
by A59, ZFMISC_1:87;
hence B * (
i,
j) =
M * (
((Sgm Bx) . i),
((Sgm By) . j))
by A1, A55, A8, A53, A54, A60, A58
.=
(Segm (M,Bx,By)) * (
i,
j)
by A56, MATRIX13:def 1
;
verum end;
hence
Segm (M,Bx,By) = B
by MATRIX_0:27; ( Segm (M,Cx,Cy) = C & ( for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j) ) )
set MC = Segm (M,Cx,Cy);
A61:
dom (Sgm Cy) = Seg (card Cy)
by FINSEQ_3:40;
A62:
dom (Sgm Cx) = Seg (card Cx)
by FINSEQ_3:40;
now for i, j being Nat st [i,j] in Indices (Segm (M,Cx,Cy)) holds
C * (i,j) = (Segm (M,Cx,Cy)) * (i,j)let i,
j be
Nat;
( [i,j] in Indices (Segm (M,Cx,Cy)) implies C * (i,j) = (Segm (M,Cx,Cy)) * (i,j) )assume A63:
[i,j] in Indices (Segm (M,Cx,Cy))
;
C * (i,j) = (Segm (M,Cx,Cy)) * (i,j)
card Cx <> 0
by A63, MATRIX_0:22;
then A64:
Indices (Segm (M,Cx,Cy)) = [:(Seg (card Cx)),(Seg (card Cy)):]
by MATRIX_0:23;
then A65:
j in Seg (card Cy)
by A63, ZFMISC_1:87;
then A66:
(Sgm Cy) . j in Cy
by A12, A61, FUNCT_1:def 3;
A67:
i in Seg (card Cx)
by A63, A64, ZFMISC_1:87;
then
(Sgm Cx) . i in Cx
by A15, A62, FUNCT_1:def 3;
then
[((Sgm Cx) . i),((Sgm Cy) . j)] in [:Cx,Cy:]
by A66, ZFMISC_1:87;
hence C * (
i,
j) =
M * (
((Sgm Cx) . i),
((Sgm Cy) . j))
by A2, A62, A61, A53, A54, A67, A65
.=
(Segm (M,Cx,Cy)) * (
i,
j)
by A63, MATRIX13:def 1
;
verum end;
hence
Segm (M,Cx,Cy) = C
by MATRIX_0:27; for i, j being Nat st [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) holds
M * (i,j) = A * (i,j)
let i, j be Nat; ( [i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:]) implies M * (i,j) = A * (i,j) )
assume A68:
[i,j] in (Indices M) \ ([:Bx,By:] \/ [:Cx,Cy:])
; M * (i,j) = A * (i,j)
not [i,j] in [:Bx,By:] \/ [:Cx,Cy:]
by A68, XBOOLE_0:def 5;
hence
M * (i,j) = A * (i,j)
by A53, A68; verum