matrix15.miz



    begin

    reserve x,y for set,

i,j,k,l,m,n for Nat,

K for Field,

N for without_zero finite Subset of NAT ,

a,b for Element of K,

A,B,B1,B2,X,X1,X2 for Matrix of K,

A9 for Matrix of m, n, K,

B9 for Matrix of m, k, K;

    theorem :: MATRIX15:1

    

     Th1: ( width A) = ( len B) implies ((a * A) * B) = (a * (A * B))

    proof

      set aA = (a * A);

      set AB = (A * B);

      set aAB = (a * AB);

      assume

       A1: ( width A) = ( len B);

      then

       A2: ( width AB) = ( width B) by MATRIX_3:def 4;

      

       A3: ( len aAB) = ( len AB) by MATRIX_3:def 5;

      then

       A4: ( len aAB) = ( len A) by A1, MATRIX_3:def 4;

      

       A5: ( width aA) = ( width A) by MATRIX_3:def 5;

      then

       A6: ( len aA) = ( len A) & ( len aA) = ( len (aA * B)) by A1, MATRIX_3:def 4, MATRIX_3:def 5;

       A7:

      now

        let i, j;

        assume [i, j] in ( Indices aAB);

        then

         A8: [i, j] in ( Indices AB) by MATRIXR1: 18;

        then i in ( dom AB) by ZFMISC_1: 87;

        then i in ( Seg ( len A)) by A3, A4, FINSEQ_1:def 3;

        then

         A9: 1 <= i & i <= ( len A) by FINSEQ_1: 1;

        ( dom AB) = ( Seg ( len AB)) by FINSEQ_1:def 3

        .= ( dom (aA * B)) by A3, A4, A6, FINSEQ_1:def 3;

        then

         A10: [i, j] in ( Indices (aA * B)) by A1, A5, A2, A8, MATRIX_3:def 4;

        

        thus (aAB * (i,j)) = (a * (AB * (i,j))) by A8, MATRIX_3:def 5

        .= (a * (( Line (A,i)) "*" ( Col (B,j)))) by A1, A8, MATRIX_3:def 4

        .= ( Sum (a * ( mlt (( Line (A,i)),( Col (B,j)))))) by FVSUM_1: 73

        .= ( Sum ( mlt ((a * ( Line (A,i))),( Col (B,j))))) by A1, FVSUM_1: 68

        .= (( Line (aA,i)) "*" ( Col (B,j))) by A9, MATRIXR1: 20

        .= ((aA * B) * (i,j)) by A1, A5, A10, MATRIX_3:def 4;

      end;

      ( width aAB) = ( width AB) & ( width B) = ( width (aA * B)) by A1, A5, MATRIX_3:def 4, MATRIX_3:def 5;

      hence thesis by A2, A4, A6, A7, MATRIX_0: 21;

    end;

    theorem :: MATRIX15:2

    

     Th2: (( 1_ K) * A) = A & (a * (b * A)) = ((a * b) * A)

    proof

      set 1A = (( 1_ K) * A);

      set bA = (b * A);

      set ab = (a * b);

      set abA = (ab * A);

       A1:

      now

        let i, j such that

         A2: [i, j] in ( Indices A);

        

        thus (A * (i,j)) = (( 1_ K) * (A * (i,j)))

        .= (1A * (i,j)) by A2, MATRIX_3:def 5;

      end;

      

       A3: ( len (a * bA)) = ( len bA) by MATRIX_3:def 5

      .= ( len A) by MATRIX_3:def 5

      .= ( len abA) by MATRIX_3:def 5;

       A4:

      now

        

         A5: ( Indices bA) = ( Indices A) by MATRIXR1: 18;

        

         A6: ( Indices (a * bA)) = ( Indices bA) by MATRIXR1: 18;

        let i, j such that

         A7: [i, j] in ( Indices (a * bA));

        

        thus ((a * bA) * (i,j)) = (a * (bA * (i,j))) by A7, A6, MATRIX_3:def 5

        .= (a * (b * (A * (i,j)))) by A7, A6, A5, MATRIX_3:def 5

        .= ((a * b) * (A * (i,j))) by GROUP_1:def 3

        .= (abA * (i,j)) by A7, A6, A5, MATRIX_3:def 5;

      end;

      

       A8: ( width (a * bA)) = ( width bA) by MATRIX_3:def 5

      .= ( width A) by MATRIX_3:def 5

      .= ( width abA) by MATRIX_3:def 5;

      ( len 1A) = ( len A) & ( width 1A) = ( width A) by MATRIX_3:def 5;

      hence thesis by A1, A3, A8, A4, MATRIX_0: 21;

    end;

    

     Lm1: ( Indices A) = ( Indices ( - A))

    proof

      ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3

      .= ( Seg ( len ( - A))) by MATRIX_3:def 2

      .= ( dom ( - A)) by FINSEQ_1:def 3;

      hence thesis by MATRIX_3:def 2;

    end;

    

     Lm2: a <> ( 0. K) implies (( power K) . (a,n)) <> ( 0. K)

    proof

      defpred P[ Nat] means for n st n = $1 holds (( power K) . (a,n)) <> ( 0. K);

      assume

       A1: a <> ( 0. K);

      

       A2: for k st P[k] holds P[(k + 1)]

      proof

        let k;

        assume P[k];

        then

         A3: (( power K) . (a,k)) <> ( 0. K);

        let n;

        assume n = (k + 1);

        then (( power K) . (a,n)) = ((( power K) . (a,k)) * a) by GROUP_1:def 7;

        hence thesis by A1, A3, VECTSP_1: 12;

      end;

      

       A4: P[ 0 ]

      proof

        

         A5: ( 1_ K) <> ( 0. K);

        let n;

        assume n = 0 ;

        hence thesis by A5, GROUP_1:def 7;

      end;

      for k holds P[k] from NAT_1:sch 2( A4, A2);

      hence thesis;

    end;

    theorem :: MATRIX15:3

    

     Th3: for K be non empty addLoopStr, f,g,h,w be FinSequence of K st ( len f) = ( len g) & ( len h) = ( len w) holds ((f ^ h) + (g ^ w)) = ((f + g) ^ (h + w))

    proof

      let K be non empty addLoopStr, f,g,h,w be FinSequence of K such that

       A1: ( len f) = ( len g) and

       A2: ( len h) = ( len w);

      set KK = the carrier of K;

      reconsider H = h, W = w as Element of (( len h) -tuples_on KK) by A2, FINSEQ_2: 92;

      reconsider F = f, G = g as Element of (( len f) -tuples_on KK) by A1, FINSEQ_2: 92;

      reconsider FH = (F ^ H), GW = (G ^ W), Th36W = ((F + G) ^ (H + W)) as Tuple of (( len f) + ( len h)), KK;

      reconsider FH, GW, Th36W as Element of ((( len f) + ( len h)) -tuples_on KK) by FINSEQ_2: 131;

      now

        let i such that

         A3: i in ( Seg (( len f) + ( len h)));

        

         A4: i in ( dom FH) by A3, FINSEQ_2: 124;

        now

          per cases by A4, FINSEQ_1: 25;

            suppose

             A5: i in ( dom f);

            

             A6: ( rng f) c= KK & ( rng g) c= KK by RELAT_1:def 19;

            

             A7: ( dom (F + G)) = ( Seg ( len f)) by FINSEQ_2: 124;

            

             A8: (f . i) in ( rng f) by A5, FUNCT_1:def 3;

            

             A9: ( dom F) = ( Seg ( len f)) by FINSEQ_2: 124;

            

             A10: ( dom G) = ( Seg ( len f)) by FINSEQ_2: 124;

            then (g . i) in ( rng g) by A5, A9, FUNCT_1:def 3;

            then

            reconsider fi = (f . i), gi = (g . i) as Element of K by A8, A6;

            

             A11: (FH . i) = fi by A5, FINSEQ_1:def 7;

            (GW . i) = gi by A5, A9, A10, FINSEQ_1:def 7;

            

            hence ((FH + GW) . i) = (fi + gi) by A3, A11, FVSUM_1: 18

            .= ((F + G) . i) by A5, A9, FVSUM_1: 18

            .= (Th36W . i) by A5, A9, A7, FINSEQ_1:def 7;

          end;

            suppose ex n st n in ( dom h) & i = (( len f) + n);

            then

            consider n such that

             A12: n in ( dom h) and

             A13: i = (( len f) + n);

            

             A14: (h . n) in ( rng h) by A12, FUNCT_1:def 3;

            

             A15: ( rng h) c= KK & ( rng w) c= KK by RELAT_1:def 19;

            

             A16: ( dom H) = ( Seg ( len h)) by FINSEQ_2: 124;

            

             A17: ( dom W) = ( Seg ( len h)) by FINSEQ_2: 124;

            then (w . n) in ( rng w) by A12, A16, FUNCT_1:def 3;

            then

            reconsider hn = (h . n), wn = (w . n) as Element of K by A14, A15;

            

             A18: (FH . i) = hn by A12, A13, FINSEQ_1:def 7;

            

             A19: ( dom (H + W)) = ( Seg ( len h)) & ( len (F + G)) = ( len f) by CARD_1:def 7, FINSEQ_2: 124;

            (GW . i) = wn by A1, A12, A13, A16, A17, FINSEQ_1:def 7;

            

            hence ((FH + GW) . i) = (hn + wn) by A3, A18, FVSUM_1: 18

            .= ((H + W) . n) by A12, A16, FVSUM_1: 18

            .= (Th36W . i) by A12, A13, A16, A19, FINSEQ_1:def 7;

          end;

        end;

        hence ((FH + GW) . i) = (Th36W . i);

      end;

      hence thesis by FINSEQ_2: 119;

    end;

    theorem :: MATRIX15:4

    

     Th4: for K be non empty multMagma, f,g be FinSequence of K, a be Element of K holds (a * (f ^ g)) = ((a * f) ^ (a * g))

    proof

      let K be non empty multMagma, f,g be FinSequence of K, a be Element of K;

      set KK = the carrier of K;

      reconsider F = f as Element of (( len f) -tuples_on KK) by FINSEQ_2: 92;

      reconsider G = g as Element of (( len g) -tuples_on KK) by FINSEQ_2: 92;

      reconsider FG = (F ^ G), aFaG = ((a * F) ^ (a * G)) as Element of ((( len f) + ( len g)) -tuples_on KK) by FINSEQ_2: 131;

      now

        let i such that

         A1: i in ( Seg (( len f) + ( len g)));

        

         A2: i in ( dom FG) by A1, FINSEQ_2: 124;

        now

          per cases by A2, FINSEQ_1: 25;

            suppose

             A3: i in ( dom f);

            

             A4: ( rng f) c= KK by RELAT_1:def 19;

            (f . i) in ( rng f) by A3, FUNCT_1:def 3;

            then

            reconsider fi = (f . i) as Element of K by A4;

            

             A5: ( dom F) = ( Seg ( len f)) by FINSEQ_2: 124;

            

             A6: ( dom (a * F)) = ( Seg ( len f)) by FINSEQ_2: 124;

            (FG . i) = fi by A3, FINSEQ_1:def 7;

            

            hence ((a * FG) . i) = (a * fi) by A1, FVSUM_1: 51

            .= ((a * F) . i) by A3, A5, FVSUM_1: 51

            .= (aFaG . i) by A3, A5, A6, FINSEQ_1:def 7;

          end;

            suppose

             A7: ex n st n in ( dom g) & i = (( len f) + n);

            

             A8: ( rng g) c= KK by RELAT_1:def 19;

            

             A9: ( dom (a * G)) = ( Seg ( len g)) & ( len (a * F)) = ( len f) by CARD_1:def 7, FINSEQ_2: 124;

            consider n such that

             A10: n in ( dom g) and

             A11: i = (( len f) + n) by A7;

            (g . n) in ( rng g) by A10, FUNCT_1:def 3;

            then

            reconsider gn = (g . n) as Element of K by A8;

            

             A12: ( dom G) = ( Seg ( len g)) by FINSEQ_2: 124;

            (FG . i) = gn by A10, A11, FINSEQ_1:def 7;

            

            hence ((a * FG) . i) = (a * gn) by A1, FVSUM_1: 51

            .= ((a * G) . n) by A10, A12, FVSUM_1: 51

            .= (aFaG . i) by A10, A11, A12, A9, FINSEQ_1:def 7;

          end;

        end;

        hence ((a * FG) . i) = (aFaG . i);

      end;

      hence thesis by FINSEQ_2: 119;

    end;

    theorem :: MATRIX15:5

    

     Th5: for f be Function holds for p1,p2,f1,f2 be FinSequence st ( rng p1) c= ( dom f) & ( rng p2) c= ( dom f) & f1 = (f * p1) & f2 = (f * p2) holds (f * (p1 ^ p2)) = (f1 ^ f2)

    proof

      let f be Function;

      let p1,p2,f1,f2 be FinSequence such that

       A1: ( rng p1) c= ( dom f) and

       A2: ( rng p2) c= ( dom f) and

       A3: f1 = (f * p1) and

       A4: f2 = (f * p2);

      

       A5: ( dom (p1 ^ p2)) = ( Seg (( len p1) + ( len p2))) by FINSEQ_1:def 7;

      ( rng (p1 ^ p2)) = (( rng p1) \/ ( rng p2)) by FINSEQ_1: 31;

      then

       A6: ( dom (f * (p1 ^ p2))) = ( dom (p1 ^ p2)) by A1, A2, RELAT_1: 27, XBOOLE_1: 8;

      

       A7: ( dom f1) = ( dom p1) by A1, A3, RELAT_1: 27;

      then

       A8: ( len f1) = ( len p1) by FINSEQ_3: 29;

      

       A9: ( dom f2) = ( dom p2) by A2, A4, RELAT_1: 27;

      then ( len f2) = ( len p2) by FINSEQ_3: 29;

      then

       A10: ( dom (f1 ^ f2)) = ( dom (f * (p1 ^ p2))) by A6, A8, A5, FINSEQ_1:def 7;

      now

        let x be object such that

         A11: x in ( dom (f1 ^ f2));

        reconsider i = x as Element of NAT by A11;

        now

          per cases ;

            suppose

             A12: i in ( dom p1);

            

            hence ((f1 ^ f2) . i) = (f1 . i) by A7, FINSEQ_1:def 7

            .= (f . (p1 . i)) by A3, A7, A12, FUNCT_1: 12

            .= (f . ((p1 ^ p2) . i)) by A12, FINSEQ_1:def 7

            .= ((f * (p1 ^ p2)) . i) by A10, A11, FUNCT_1: 12;

          end;

            suppose not i in ( dom p1);

            then

            consider n such that

             A13: n in ( dom p2) and

             A14: i = (( len p1) + n) by A7, A9, A8, A11, FINSEQ_1: 25;

            

            thus ((f1 ^ f2) . i) = (f2 . n) by A9, A8, A13, A14, FINSEQ_1:def 7

            .= (f . (p2 . n)) by A4, A9, A13, FUNCT_1: 12

            .= (f . ((p1 ^ p2) . i)) by A13, A14, FINSEQ_1:def 7

            .= ((f * (p1 ^ p2)) . i) by A10, A11, FUNCT_1: 12;

          end;

        end;

        hence ((f1 ^ f2) . x) = ((f * (p1 ^ p2)) . x);

      end;

      hence thesis by A10, FUNCT_1: 2;

    end;

    theorem :: MATRIX15:6

    

     Th6: for f be FinSequence of NAT , n st f is one-to-one & ( rng f) c= ( Seg n) & for i, j st i in ( dom f) & j in ( dom f) & i < j holds (f . i) < (f . j) holds ( Sgm ( rng f)) = f

    proof

      defpred P[ Nat] means for f be FinSequence of NAT , n st ( len f) = $1 & ( rng f) c= ( Seg n) & f is one-to-one & for i, j st i in ( dom f) & j in ( dom f) & i < j holds (f . i) < (f . j) holds ( Sgm ( rng f)) = f;

      

       A1: P[ 0 ]

      proof

        let f be FinSequence of NAT , n such that

         A2: ( len f) = 0 and ( rng f) c= ( Seg n) and f is one-to-one and for i, j st i in ( dom f) & j in ( dom f) & i < j holds (f . i) < (f . j);

        f = {} by A2;

        hence thesis by FINSEQ_3: 43;

      end;

      

       A3: for n st P[n] holds P[(n + 1)]

      proof

        let n such that

         A4: P[n];

        set n1 = (n + 1);

        let f be FinSequence of NAT , k such that

         A5: ( len f) = n1 and

         A6: ( rng f) c= ( Seg k) and

         A7: f is one-to-one and

         A8: for i, j st i in ( dom f) & j in ( dom f) & i < j holds (f . i) < (f . j);

        set fn = (f | n);

        

         A9: f = (fn ^ <*(f . n1)*>) by A5, FINSEQ_3: 55;

        then

         A10: ( rng fn) c= ( rng f) by FINSEQ_1: 29;

        

         A11: ( dom fn) c= ( dom f) by A9, FINSEQ_1: 26;

        

         A12: for i, j st i in ( dom fn) & j in ( dom fn) & i < j holds (fn . i) < (fn . j)

        proof

          let i, j such that

           A13: i in ( dom fn) & j in ( dom fn) and

           A14: i < j;

          (fn . i) = (f . i) & (fn . j) = (f . j) by A9, A13, FINSEQ_1:def 7;

          hence thesis by A8, A11, A13, A14;

        end;

        

         A15: ( len fn) = n by A5, FINSEQ_3: 53;

         A16:

        now

          

           A17: n1 in ( Seg n1) & ( dom f) = ( Seg n1) by A5, FINSEQ_1: 4, FINSEQ_1:def 3;

          let m9,n9 be Nat such that

           A18: m9 in ( rng fn) and

           A19: n9 in {(f . n1)};

          consider x be object such that

           A20: x in ( dom fn) and

           A21: (fn . x) = m9 by A18, FUNCT_1:def 3;

          reconsider x as Element of NAT by A20;

          

           A22: (f . x) = (fn . x) by A9, A20, FINSEQ_1:def 7;

          ( dom fn) = ( Seg n) by A15, FINSEQ_1:def 3;

          then x <= n by A20, FINSEQ_1: 1;

          then x < n1 by NAT_1: 13;

          then (f . x) < (f . n1) by A8, A11, A20, A17;

          hence m9 < n9 by A19, A21, A22, TARSKI:def 1;

        end;

        fn is one-to-one by A7, FUNCT_1: 52;

        then

         A23: ( Sgm ( rng fn)) = fn by A4, A6, A15, A10, A12, XBOOLE_1: 1;

        

         A24: ( rng <*(f . n1)*>) = {(f . n1)} by FINSEQ_1: 39;

        ( rng <*(f . n1)*>) c= ( rng f) by A9, FINSEQ_1: 30;

        then

         A25: {(f . n1)} c= ( Seg k) by A6, A24;

        

         A26: ( rng f) = (( rng fn) \/ ( rng <*(f . n1)*>)) by A9, FINSEQ_1: 31;

        

         A27: (f . n1) in {(f . n1)} by TARSKI:def 1;

        ( rng fn) c= ( Seg k) by A6, A10;

        

        hence ( Sgm ( rng f)) = (fn ^ ( Sgm {(f . n1)})) by A26, A24, A25, A23, A16, FINSEQ_3: 42

        .= f by A9, A25, A27, FINSEQ_3: 44;

      end;

      let f be FinSequence of NAT , n such that

       A28: f is one-to-one & ( rng f) c= ( Seg n) & for i, j st i in ( dom f) & j in ( dom f) & i < j holds (f . i) < (f . j);

      for n holds P[n] from NAT_1:sch 2( A1, A3);

      then for g be FinSequence of NAT , n st ( len g) = ( len f) & ( rng g) c= ( Seg n) & g is one-to-one & for i, j st i in ( dom g) & j in ( dom g) & i < j holds (g . i) < (g . j) holds ( Sgm ( rng g)) = g;

      hence thesis by A28;

    end;

    theorem :: MATRIX15:7

    

     Th7: for K be Abelian add-associative right_zeroed right_complementable non empty addLoopStr holds for p be FinSequence of K holds for i, j st i in ( dom p) & j in ( dom p) & i <> j & for k st k in ( dom p) & k <> i & k <> j holds (p . k) = ( 0. K) holds ( Sum p) = ((p /. i) + (p /. j))

    proof

      let K be Abelian add-associative right_zeroed right_complementable non empty addLoopStr;

      let p be FinSequence of K;

       A1:

      now

        let i, j such that

         A2: i in ( dom p) and

         A3: j in ( dom p) and

         A4: i < j and

         A5: for k st k in ( dom p) & k <> i & k <> j holds (p . k) = ( 0. K);

        

         A6: ( dom p) = ( Seg ( len p)) by FINSEQ_1:def 3;

        then i in NAT & 1 <= i by A2, FINSEQ_1: 1;

        then

         A7: i in ( Seg i);

        set pI = (p | i);

        consider q be FinSequence such that

         A8: p = (pI ^ q) by FINSEQ_1: 80;

        reconsider q as FinSequence of K by A8, FINSEQ_1: 36;

        

         A9: i <= ( len p) by A2, A6, FINSEQ_1: 1;

        then

         A10: ( len pI) = i by FINSEQ_1: 17;

        

         A11: ( dom pI) = ( Seg i) by A9, FINSEQ_1: 17;

        then not j in ( dom pI) by A4, FINSEQ_1: 1;

        then

        consider ji be Nat such that

         A12: ji in ( dom q) and

         A13: j = (i + ji) by A3, A8, A10, FINSEQ_1: 25;

        now

          let k such that

           A14: k in ( dom q) and

           A15: k <> ji;

          reconsider kk = k as Element of NAT by ORDINAL1:def 12;

          

           A16: (i + kk) <> (i + ji) by A15;

          ( dom q) = ( Seg ( len q)) by FINSEQ_1:def 3;

          then k >= 1 by A14, FINSEQ_1: 1;

          then (k + i) >= (i + 1) by XREAL_1: 7;

          then

           A17: (i + kk) <> i by NAT_1: 13;

          

          thus (q . k) = (p . (i + kk)) by A8, A10, A14, FINSEQ_1:def 7

          .= ( 0. K) by A5, A8, A10, A13, A14, A17, A16, FINSEQ_1: 28;

        end;

        

        then

         A18: ( Sum q) = (q . ji) by A12, MATRIX_3: 12

        .= (p . j) by A8, A10, A12, A13, FINSEQ_1:def 7

        .= (p /. j) by A3, PARTFUN1:def 6;

        

         A19: ( Seg i) c= ( Seg ( len p)) by A9, FINSEQ_1: 5;

        now

          let k such that

           A20: k in ( dom pI) and

           A21: k <> i;

          reconsider kk = k as Element of NAT by ORDINAL1:def 12;

          

           A22: k <> j by A4, A11, A20, FINSEQ_1: 1;

          

          thus (pI . k) = (p . kk) by A8, A20, FINSEQ_1:def 7

          .= ( 0. K) by A5, A6, A11, A19, A20, A21, A22;

        end;

        

        then ( Sum pI) = (pI . i) by A7, A11, MATRIX_3: 12

        .= (p . i) by A8, A7, A11, FINSEQ_1:def 7

        .= (p /. i) by A6, A7, A19, PARTFUN1:def 6;

        hence ( Sum p) = ((p /. i) + (p /. j)) by A8, A18, RLVECT_1: 41;

      end;

      let i, j such that

       A23: i in ( dom p) & j in ( dom p) and

       A24: i <> j and

       A25: for k st k in ( dom p) & k <> i & k <> j holds (p . k) = ( 0. K);

      

       A26: i < j or j < i by A24, XXREAL_0: 1;

      for k st k in ( dom p) & k <> j & k <> i holds (p . k) = ( 0. K) by A25;

      hence thesis by A1, A23, A25, A26;

    end;

    theorem :: MATRIX15:8

    

     Th8: i in ( Seg m) implies (( Sgm (( Seg (n + m)) \ ( Seg n))) . i) = (n + i)

    proof

      assume

       A1: i in ( Seg m);

      reconsider N = n as Element of NAT by ORDINAL1:def 12;

      set I = ( idseq m);

      

       A2: ( dom I) = ( Seg ( len I)) by FINSEQ_1:def 3;

      

       A3: ( dom (N Shift I)) = { (k + N) where k be Nat : k in ( dom I) } by VALUED_1:def 12;

      

       A4: (( Seg (n + m)) \ ( Seg n)) c= ( dom (N Shift I))

      proof

        let x be object such that

         A5: x in (( Seg (n + m)) \ ( Seg n));

        reconsider i = x as Element of NAT by A5;

        

         A6: i in ( Seg (n + m)) by A5, XBOOLE_0:def 5;

         not i in ( Seg n) by A5, XBOOLE_0:def 5;

        then

         A7: i < 1 or i > n;

        then

        reconsider IN = (i - n) as Element of NAT by A6, FINSEQ_1: 1, NAT_1: 21;

        

         A8: (n + IN) = i;

        i <= (n + m) by A6, FINSEQ_1: 1;

        then

         A9: IN <= m by A8, XREAL_1: 8;

        IN >= 1 by A6, A7, A8, FINSEQ_1: 1, NAT_1: 19;

        then IN in ( dom I) by A9;

        then (n + IN) in ( dom (N Shift I)) by A3;

        hence thesis;

      end;

      ( dom (N Shift I)) c= (( Seg (n + m)) \ ( Seg n))

      proof

        let x be object;

        assume x in ( dom (N Shift I));

        then

        consider k be Nat such that

         A10: (k + n) = x and

         A11: k in ( dom I) by A3;

        k <= m by A11, FINSEQ_1: 1;

        then

         A12: (n + k) <= (n + m) by XREAL_1: 7;

        1 <= k by A11, FINSEQ_1: 1;

        then

         A13: (n + 1) <= (n + k) by XREAL_1: 7;

        then (n + k) > n by NAT_1: 13;

        then

         A14: not (k + n) in ( Seg n) by FINSEQ_1: 1;

        1 <= (n + 1) by NAT_1: 11;

        then 1 <= (n + k) by A13, XXREAL_0: 2;

        then (n + k) in ( Seg (n + m)) by A12;

        hence thesis by A10, A14, XBOOLE_0:def 5;

      end;

      then (( Seg (n + m)) \ ( Seg n)) = ( dom (N Shift I)) by A4;

      hence thesis by A1, A2, VALUED_1: 44;

    end;

    theorem :: MATRIX15:9

    

     Th9: for D be non empty set, A be Matrix of D holds for Bx,By,Cx,Cy be without_zero finite Subset of NAT st [:Bx, By:] c= ( Indices A) & [:Cx, Cy:] c= ( Indices A) holds for B be Matrix of ( card Bx), ( card By), D, C be Matrix of ( card Cx), ( card Cy), D st for i,j,bi,bj,ci,cj be 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 be Matrix of ( len A), ( width A), D st ( Segm (M,Bx,By)) = B & ( Segm (M,Cx,Cy)) = C & for i, j st [i, j] in (( Indices M) \ ( [:Bx, By:] \/ [:Cx, Cy:])) holds (M * (i,j)) = (A * (i,j))

    proof

      let D be non empty set, A be Matrix of D;

      let Bx,By,Cx,Cy be without_zero finite Subset of NAT such that

       A1: [:Bx, By:] c= ( Indices A) and

       A2: [:Cx, Cy:] c= ( Indices A);

      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 bx, bY, D, C be Matrix of cx, cy, D such that

       A3: for i,j,bi,bj,ci,cj be 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));

      

       A4: ex kBy be Nat st By c= ( Seg kBy) by MATRIX13: 43;

      then

       A5: ( rng ( Sgm By)) = By by FINSEQ_1:def 13;

      defpred P[ set, set, set] means for i, j st $1 = i & $2 = j holds ( [i, j] in [:Bx, By:] implies (ex m, n st m in ( dom ( Sgm Bx)) & n in ( dom ( Sgm By)) & (( Sgm Bx) . m) = i & (( Sgm By) . n) = j) & for m, n 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 st m in ( dom ( Sgm Cx)) & n in ( dom ( Sgm Cy)) & (( Sgm Cx) . m) = i & (( Sgm Cy) . n) = j) & for m, n 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)));

      

       A6: ex kBx be Nat st Bx c= ( Seg kBx) by MATRIX13: 43;

      then

       A7: ( rng ( Sgm Bx)) = Bx by FINSEQ_1:def 13;

      

       A8: ( dom ( Sgm By)) = ( Seg bY) by A4, FINSEQ_3: 40;

      

       A9: ( Sgm By) is one-to-one by A4, FINSEQ_3: 92;

      

       A10: ( Sgm Bx) is one-to-one by A6, FINSEQ_3: 92;

      

       A11: ex kCy be Nat st Cy c= ( Seg kCy) by MATRIX13: 43;

      then

       A12: ( rng ( Sgm Cy)) = Cy by FINSEQ_1:def 13;

      

       A13: ( Sgm Cy) is one-to-one by A11, FINSEQ_3: 92;

      

       A14: ex kCx be Nat st Cx c= ( Seg kCx) by MATRIX13: 43;

      then

       A15: ( rng ( Sgm Cx)) = Cx by FINSEQ_1:def 13;

      

       A16: ( Sgm Cx) is one-to-one by A14, FINSEQ_3: 92;

      

       A17: for i, j st [i, j] in [:( Seg l), ( Seg w):] holds ex x be Element of D st P[i, j, x]

      proof

        let i, j such that [i, j] in [:( Seg l), ( Seg w):];

        per cases ;

          suppose

           A18: [i, j] in [:Bx, By:] & [i, j] in [:Cx, Cy:];

          then j in Cy by ZFMISC_1: 87;

          then

          consider yC be 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 be 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 be 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 be object such that

           A25: x in ( dom ( Sgm Bx)) and

           A26: (( Sgm Bx) . x) = i by A7, FUNCT_1:def 3;

          reconsider x, y as Element of NAT by A25, A21;

          take BB = (B * (x,y));

           A27:

          now

            let m, n;

            assume m in ( dom ( Sgm Cx)) & n in ( dom ( Sgm Cy)) & (( Sgm Cx) . m) = i & (( Sgm Cy) . n) = j;

            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;

          end;

          now

            let m, n such 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;

            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;

          end;

          hence thesis by A18, A25, A26, A21, A22, A23, A24, A19, A20, A27, XBOOLE_0:def 3;

        end;

          suppose

           A34: [i, j] in [:Bx, By:] & not [i, j] in [:Cx, Cy:];

          then j in By by ZFMISC_1: 87;

          then

          consider y be 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 be object such that

           A37: x in ( dom ( Sgm Bx)) and

           A38: (( Sgm Bx) . x) = i by A7, FUNCT_1:def 3;

          reconsider x, y as Element of NAT by A37, A35;

          take BB = (B * (x,y));

          now

            let m, n such 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;

            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;

          end;

          hence thesis by A34, A37, A38, A35, A36, XBOOLE_0:def 3;

        end;

          suppose

           A43: not [i, j] in [:Bx, By:] & [i, j] in [:Cx, Cy:];

          then j in Cy by ZFMISC_1: 87;

          then

          consider y be 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 be object such that

           A46: x in ( dom ( Sgm Cx)) and

           A47: (( Sgm Cx) . x) = i by A15, FUNCT_1:def 3;

          reconsider x, y as Element of NAT by A46, A44;

          take CC = (C * (x,y));

          now

            let m, n such 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;

            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;

          end;

          hence thesis by A43, A46, A47, A44, A45, XBOOLE_0:def 3;

        end;

          suppose

           A52: not [i, j] in [:Bx, By:] & not [i, j] in [:Cx, Cy:];

          take (A * (i,j));

          thus thesis by A52;

        end;

      end;

      consider M be Matrix of l, w, D such that

       A53: for i, j st [i, j] in ( Indices M) holds P[i, j, (M * (i,j))] from MATRIX_0:sch 2( A17);

      set MB = ( Segm (M,Bx,By));

      take M;

      A is Matrix of l, w, D by MATRIX_0: 51;

      then

       A54: ( Indices A) = ( Indices M) by MATRIX_0: 26;

      

       A55: ( dom ( Sgm Bx)) = ( Seg bx) by A6, FINSEQ_3: 40;

      now

        let i, j such that

         A56: [i, j] in ( Indices MB);

        bx <> 0 by A56, MATRIX_0: 22;

        then

         A57: ( Indices MB) = [:( Seg bx), ( Seg bY):] by MATRIX_0: 23;

        then

         A58: j in ( Seg bY) by A56, ZFMISC_1: 87;

        then

         A59: (( Sgm By) . j) in By by A5, A8, FUNCT_1:def 3;

        

         A60: i in ( Seg 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

        .= (MB * (i,j)) by A56, MATRIX13:def 1;

      end;

      hence MB = B by MATRIX_0: 27;

      set MC = ( Segm (M,Cx,Cy));

      

       A61: ( dom ( Sgm Cy)) = ( Seg cy) by A11, FINSEQ_3: 40;

      

       A62: ( dom ( Sgm Cx)) = ( Seg cx) by A14, FINSEQ_3: 40;

      now

        let i, j such that

         A63: [i, j] in ( Indices MC);

        cx <> 0 by A63, MATRIX_0: 22;

        then

         A64: ( Indices MC) = [:( Seg cx), ( Seg cy):] by MATRIX_0: 23;

        then

         A65: j in ( Seg cy) by A63, ZFMISC_1: 87;

        then

         A66: (( Sgm Cy) . j) in Cy by A12, A61, FUNCT_1:def 3;

        

         A67: i in ( Seg 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

        .= (MC * (i,j)) by A63, MATRIX13:def 1;

      end;

      hence MC = C by MATRIX_0: 27;

      let i, j such that

       A68: [i, j] in (( Indices M) \ ( [:Bx, By:] \/ [:Cx, Cy:]));

       not [i, j] in ( [:Bx, By:] \/ [:Cx, Cy:]) by A68, XBOOLE_0:def 5;

      hence thesis by A53, A68;

    end;

    theorem :: MATRIX15:10

    

     Th10: for P,Q,Q9 be without_zero finite Subset of NAT st [:P, Q9:] c= ( Indices A) holds for i, j st i in (( dom A) \ P) & j in (( Seg ( width A)) \ Q) & (A * (i,j)) <> ( 0. K) & Q c= Q9 & (( Line (A,i)) * ( Sgm Q9)) = (( card Q9) |-> ( 0. K)) holds ( the_rank_of A) > ( the_rank_of ( Segm (A,P,Q)))

    proof

      let P,Q,R be without_zero finite Subset of NAT such that

       A1: [:P, R:] c= ( Indices A);

      let i, j such that

       A2: i in (( dom A) \ P) and

       A3: j in (( Seg ( width A)) \ Q) and

       A4: (A * (i,j)) <> ( 0. K) and

       A5: Q c= R and

       A6: (( Line (A,i)) * ( Sgm R)) = (( card R) |-> ( 0. K));

      

       A7: ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3;

      then

       A8: i in ( Seg ( len A)) by A2, XBOOLE_0:def 5;

      

       A9: [:P, Q:] c= [:P, R:] by A5, ZFMISC_1: 95;

      then

       A10: [:P, Q:] c= ( Indices A) by A1;

      reconsider i0 = i, j0 = j as non zero Element of NAT by A2, A3, A7;

      

       A11: j in ( Seg ( width A)) by A3, XBOOLE_0:def 5;

      set S = ( Segm (A,P,Q));

      consider P9,Q9 be without_zero finite Subset of NAT such that

       A12: [:P9, Q9:] c= ( Indices S) and

       A13: ( card P9) = ( card Q9) and

       A14: ( card P9) = ( the_rank_of S) and

       A15: ( Det ( EqSegm (S,P9,Q9))) <> ( 0. K) by MATRIX13:def 4;

      P9 = {} iff Q9 = {} by A13;

      then

      consider P2,Q2 be without_zero finite Subset of NAT such that

       A16: P2 c= P and

       A17: Q2 c= Q and P2 = (( Sgm P) .: P9) and Q2 = (( Sgm Q) .: Q9) and

       A18: ( card P2) = ( card P9) and

       A19: ( card Q2) = ( card Q9) and

       A20: ( Segm (S,P9,Q9)) = ( Segm (A,P2,Q2)) by A12, MATRIX13: 57;

      set Q2j = (Q2 \/ {j0});

      set P2i = (P2 \/ {i0});

      set ESS = ( EqSegm (A,P2i,Q2j));

      set SS = ( Segm (A,P2i,Q2j));

      per cases ;

        suppose [:P, Q:] = {} ;

        then ( card P) = 0 or ( card Q) = 0 by CARD_1: 27, ZFMISC_1: 90;

        then

         A21: ( the_rank_of S) = 0 by MATRIX13: 77;

         [i, j] in ( Indices A) by A7, A8, A11, ZFMISC_1: 87;

        hence thesis by A4, A21, MATRIX13: 94;

      end;

        suppose

         A22: [:P, Q:] <> {} ;

        then P c= ( dom A) by A10, ZFMISC_1: 114;

        then

         A23: P2 c= ( dom A) by A16;

         [:P, R:] <> {} by A9, A22, XBOOLE_1: 3;

        then

         A24: R c= ( Seg ( width A)) by A1, ZFMISC_1: 114;

        then

         A25: ( dom ( Sgm R)) = ( Seg ( card R)) by FINSEQ_3: 40;

        Q c= ( Seg ( width A)) by A10, A22, ZFMISC_1: 114;

        then

         A26: Q2 c= ( Seg ( width A)) by A17;

        

         A27: {j0} c= ( Seg ( width A)) by A11, ZFMISC_1: 31;

        then

         A28: ( Sgm Q2j) is one-to-one by A26, FINSEQ_3: 92, XBOOLE_1: 8;

        

         A29: Q2j c= ( Seg ( width A)) by A26, A27, XBOOLE_1: 8;

        then

         A30: ( rng ( Sgm Q2j)) = Q2j by FINSEQ_1:def 13;

        

         A31: {i0} c= ( dom A) by A7, A8, ZFMISC_1: 31;

        then

         A32: P2i c= ( dom A) by A23, XBOOLE_1: 8;

        then

         A33: [:P2i, Q2j:] c= ( Indices A) by A29, ZFMISC_1: 96;

        

         A34: ( dom ( Sgm P2i)) = ( Seg ( card P2i)) by A7, A23, A31, FINSEQ_3: 40, XBOOLE_1: 8;

        i in {i} by TARSKI:def 1;

        then

         A35: i in P2i by XBOOLE_0:def 3;

        

         A36: not i in P2 by A2, A16, XBOOLE_0:def 5;

        then

         A37: ( card P2i) = (( card P2) + 1) by CARD_2: 41;

        then

         A38: (( card P2i) -' 1) = ( card P9) by A18, NAT_D: 34;

        

         A39: not j in Q2 by A3, A17, XBOOLE_0:def 5;

        then

         A40: ( card Q2j) = (( card Q2) + 1) by CARD_2: 41;

        then

         A41: ESS = SS by A13, A18, A19, A36, CARD_2: 41, MATRIX13:def 3;

        j in {j} by TARSKI:def 1;

        then j in Q2j by XBOOLE_0:def 3;

        then

        consider y be object such that

         A42: y in ( dom ( Sgm Q2j)) and

         A43: (( Sgm Q2j) . y) = j by A30, FUNCT_1:def 3;

        ( rng ( Sgm P2i)) = P2i by A7, A32, FINSEQ_1:def 13;

        then

        consider x be object such that

         A44: x in ( dom ( Sgm P2i)) and

         A45: (( Sgm P2i) . x) = i by A35, FUNCT_1:def 3;

        reconsider x, y as Element of NAT by A44, A42;

        ( - ( 1_ K)) <> ( 0. K) by VECTSP_1: 28;

        then

         A46: (( power K) . (( - ( 1_ K)),(x + y))) <> ( 0. K) by Lm2;

        set L = ( LaplaceExpL (ESS,x));

        

         A47: ( dom L) = ( Seg ( len L)) by FINSEQ_1:def 3

        .= ( Seg ( card P2i)) by LAPLACE:def 7;

        then

         A48: y in ( dom L) by A13, A18, A19, A26, A27, A37, A40, A42, FINSEQ_3: 40, XBOOLE_1: 8;

        

         A49: ( dom ( Sgm Q2j)) = ( Seg ( card Q2j)) by A26, A27, FINSEQ_3: 40, XBOOLE_1: 8;

        

        then ( Delete (ESS,x,y)) = ( EqSegm (A,(P2i \ {i}),(Q2j \ {j}))) by A13, A18, A19, A37, A40, A34, A44, A45, A42, A43, MATRIX13: 64

        .= ( EqSegm (A,P2,(Q2j \ {j}))) by A36, ZFMISC_1: 117

        .= ( EqSegm (A,P2,Q2)) by A39, ZFMISC_1: 117

        .= ( Segm (A,P2,Q2)) by A13, A18, A19, MATRIX13:def 3

        .= ( EqSegm (S,P9,Q9)) by A13, A20, MATRIX13:def 3;

        then

         A50: ((( power K) . (( - ( 1_ K)),(x + y))) * ( Det ( Delete (ESS,x,y)))) <> ( 0. K) by A15, A38, A46, VECTSP_1: 12;

        

         A51: ( Indices ESS) = [:( Seg ( card P2i)), ( Seg ( card P2i)):] by MATRIX_0: 24;

        then

         A52: [x, y] in ( Indices ESS) by A13, A18, A19, A37, A40, A34, A49, A44, A42, ZFMISC_1: 87;

        

         A53: ( rng ( Sgm R)) = R by A24, FINSEQ_1:def 13;

        now

          let k such that

           A54: k in ( dom L) and

           A55: k <> y;

          (( Sgm Q2j) . k) <> j by A13, A18, A19, A37, A40, A49, A28, A42, A43, A47, A54, A55, FUNCT_1:def 4;

          then

           A56: not (( Sgm Q2j) . k) in {j} by TARSKI:def 1;

          (( Sgm Q2j) . k) in Q2j by A13, A18, A19, A37, A40, A30, A49, A47, A54, FUNCT_1:def 3;

          then (( Sgm Q2j) . k) in Q2 by A56, XBOOLE_0:def 3;

          then

           A57: (( Sgm Q2j) . k) in Q by A17;

          then

           A58: (( Sgm Q2j) . k) in R by A5;

          consider z be object such that

           A59: z in ( dom ( Sgm R)) and

           A60: (( Sgm R) . z) = (( Sgm Q2j) . k) by A5, A53, A57, FUNCT_1:def 3;

          reconsider z as Element of NAT by A59;

           [x, k] in ( Indices ESS) by A34, A44, A47, A51, A54, ZFMISC_1: 87;

          

          then (ESS * (x,k)) = (A * (i,(( Sgm Q2j) . k))) by A45, A41, MATRIX13:def 1

          .= (( Line (A,i)) . (( Sgm R) . z)) by A24, A60, A58, MATRIX_0:def 7

          .= ((( card R) |-> ( 0. K)) . z) by A6, A59, FUNCT_1: 13

          .= ( 0. K) by A25, A59, FINSEQ_2: 57;

          

          hence (L . k) = (( 0. K) * ( Cofactor (ESS,x,k))) by A54, LAPLACE:def 7

          .= ( 0. K);

        end;

        

        then

         A61: (L . y) = ( Sum L) by A48, MATRIX_3: 12

        .= ( Det ESS) by A34, A44, LAPLACE: 25;

        (L . y) = ((SS * (x,y)) * ( Cofactor (ESS,x,y))) by A48, A41, LAPLACE:def 7

        .= ((A * (i,j)) * ((( power K) . (( - ( 1_ K)),(x + y))) * ( Det ( Delete (ESS,x,y))))) by A45, A43, A41, A52, MATRIX13:def 1;

        then ( Det ESS) <> ( 0. K) by A4, A61, A50, VECTSP_1: 12;

        then ( the_rank_of A) >= ( card P2i) by A13, A18, A19, A37, A40, A33, MATRIX13:def 4;

        hence thesis by A14, A18, A37, NAT_1: 13;

      end;

    end;

    theorem :: MATRIX15:11

    

     Th11: for N st N c= ( dom A) & for i st i in (( dom A) \ N) holds ( Line (A,i)) = (( width A) |-> ( 0. K)) holds ( the_rank_of A) = ( the_rank_of ( Segm (A,N,( Seg ( width A)))))

    proof

      let N such that

       A1: N c= ( dom A) and

       A2: for i st i in (( dom A) \ N) holds ( Line (A,i)) = (( width A) |-> ( 0. K));

      set w = ( width A);

      set l = ( len A);

      reconsider A9 = A as Matrix of ( len A), ( width A), K by MATRIX_0: 51;

      set S = ( Segm (A9,N,( Seg ( width A9))));

      consider U be finite Subset of (w -VectSp_over K) such that

       A3: U is linearly-independent and

       A4: U c= ( lines A9) and

       A5: ( card U) = ( the_rank_of A9) by MATRIX13: 123;

      

       A6: U c= ( lines S)

      proof

        let x be object such that

         A7: x in U;

        consider Ni be Nat such that

         A8: Ni in ( Seg l) and

         A9: x = ( Line (A9,Ni)) by A4, A7, MATRIX13: 103;

        

         A10: ( dom A) = ( Seg l) by FINSEQ_1:def 3;

        

         A11: Ni in N

        proof

          assume not Ni in N;

          then Ni in (( dom A) \ N) by A8, A10, XBOOLE_0:def 5;

          

          then x = (w |-> ( 0. K)) by A2, A9

          .= ( 0. (w -VectSp_over K)) by MATRIX13: 102;

          hence thesis by A3, A7, VECTSP_7: 2;

        end;

        ( rng ( Sgm N)) = N by A1, A10, FINSEQ_1:def 13;

        then

        consider i be object such that

         A12: i in ( dom ( Sgm N)) and

         A13: (( Sgm N) . i) = Ni by A11, FUNCT_1:def 3;

        reconsider i as Element of NAT by A12;

        

         A14: ( dom ( Sgm N)) = ( Seg ( card N)) by A1, A10, FINSEQ_3: 40;

        then ( Line (S,i)) = x by A9, A12, A13, MATRIX13: 48;

        hence thesis by A12, A14, MATRIX13: 103;

      end;

       A15:

      now

        let W be finite Subset of (w -VectSp_over K) such that

         A16: W is linearly-independent and

         A17: W c= ( lines S);

        ( dom A) = ( Seg l) by FINSEQ_1:def 3;

        then ( lines S) c= ( lines A9) by A1, MATRIX13: 118;

        then W c= ( lines A9) by A17;

        hence ( card W) <= ( the_rank_of A9) by A16, MATRIX13: 123;

      end;

      w = ( card ( Seg w)) by FINSEQ_1: 57;

      hence thesis by A3, A5, A6, A15, MATRIX13: 123;

    end;

    theorem :: MATRIX15:12

    

     Th12: for N st N c= ( Seg ( width A)) & for i st i in (( Seg ( width A)) \ N) holds ( Col (A,i)) = (( len A) |-> ( 0. K)) holds ( the_rank_of A) = ( the_rank_of ( Segm (A,( Seg ( len A)),N)))

    proof

      let N such that

       A1: N c= ( Seg ( width A)) and

       A2: for i st i in (( Seg ( width A)) \ N) holds ( Col (A,i)) = (( len A) |-> ( 0. K));

      

       A3: ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3;

      per cases ;

        suppose

         A4: ( card N) = 0 ;

        ( the_rank_of A) = 0

        proof

          

           A5: N = {} by A4;

          assume ( the_rank_of A) <> 0 ;

          then

          consider i, j such that

           A6: [i, j] in ( Indices A) and

           A7: (A * (i,j)) <> ( 0. K) by MATRIX13: 94;

          

           A8: j in ( Seg ( width A)) by A6, ZFMISC_1: 87;

          

           A9: i in ( dom A) by A6, ZFMISC_1: 87;

          

          then ( 0. K) = ((( len A) |-> ( 0. K)) . i) by A3, FINSEQ_2: 57

          .= (( Col (A,j)) . i) by A2, A8, A5

          .= (A * (i,j)) by A9, MATRIX_0:def 8;

          hence thesis by A7;

        end;

        hence thesis by A4, MATRIX13: 77;

      end;

        suppose

         A10: ( card N) > 0 ;

        then N <> {} ;

        then ( Seg ( width A)) <> {} by A1, XBOOLE_1: 3;

        then

         A11: ( width A) <> 0 ;

        then

         A12: ( len A) <> 0 by MATRIX_0:def 3;

        set AT = (A @ );

        

         A13: [:( dom A), N:] c= ( Indices A) by A1, ZFMISC_1: 95;

        

         A14: ( width AT) = ( len A) by A11, MATRIX_0: 54;

        

         A15: ( len AT) = ( width A) by A11, MATRIX_0: 54;

        then

         A16: N c= ( dom AT) by A1, FINSEQ_1:def 3;

        

         A17: ( dom AT) = ( Seg ( len AT)) by FINSEQ_1:def 3;

         A18:

        now

          let i such that

           A19: i in (( dom AT) \ N);

          i in ( dom AT) by A19, XBOOLE_0:def 5;

          

          hence ( Line (AT,i)) = ( Col (A,i)) by A15, A17, MATRIX_0: 59

          .= (( width AT) |-> ( 0. K)) by A2, A15, A14, A17, A19;

        end;

        

        thus ( the_rank_of A) = ( the_rank_of AT) by MATRIX13: 84

        .= ( the_rank_of ( Segm (AT,N,( Seg ( len A))))) by A14, A16, A18, Th11

        .= ( the_rank_of (( Segm (A,( Seg ( len A)),N)) @ )) by A3, A10, A12, A13, MATRIX13: 61

        .= ( the_rank_of ( Segm (A,( Seg ( len A)),N))) by MATRIX13: 84;

      end;

    end;

    theorem :: MATRIX15:13

    

     Th13: for V be VectSp of K holds for U be finite Subset of V holds for u,v be Vector of V, a st u in U & v in U holds ( Lin ((U \ {u}) \/ {(u + (a * v))})) is Subspace of ( Lin U)

    proof

      let V be VectSp of K;

      let U be finite Subset of V;

      let u,v be Vector of V, a such that

       A1: u in U & v in U;

      set ua = (u + (a * v));

      set UU = (U \ {u});

      (UU \/ {ua}) c= the carrier of ( Lin U)

      proof

        let x be object such that

         A2: x in (UU \/ {ua});

        per cases by A2, XBOOLE_0:def 3;

          suppose x in UU;

          then x in U by XBOOLE_0:def 5;

          then x in ( Lin U) by VECTSP_7: 8;

          hence thesis by STRUCT_0:def 5;

        end;

          suppose

           A3: x in {ua};

          

           A4: u in ( Lin U) & (a * v) in ( Lin U) by A1, VECTSP_4: 21, VECTSP_7: 8;

          x = ua by A3, TARSKI:def 1;

          then x in ( Lin U) by A4, VECTSP_4: 20;

          hence thesis by STRUCT_0:def 5;

        end;

      end;

      hence thesis by VECTSP_9: 16;

    end;

    theorem :: MATRIX15:14

    

     Th14: for V be VectSp of K holds for U be finite Subset of V holds for u,v be Vector of V, a st u in U & v in U & (u = v implies (a <> ( - ( 1_ K)) or u = ( 0. V))) holds ( Lin ((U \ {u}) \/ {(u + (a * v))})) = ( Lin U)

    proof

      let V be VectSp of K;

      let U be finite Subset of V;

      let u,v be Vector of V, a such that

       A1: u in U and

       A2: v in U and

       A3: u = v implies (a <> ( - ( 1_ K)) or u = ( 0. V));

      set ua = (u + (a * v));

      set UU = (U \ {u});

      U c= the carrier of ( Lin (UU \/ {ua}))

      proof

        let x be object such that

         A4: x in U;

        per cases ;

          suppose

           A5: x = u;

          per cases ;

            suppose

             A6: u <> v;

            

             A7: (ua + (( - a) * v)) = (ua - (a * v)) by VECTSP_1: 21

            .= (u + ((a * v) - (a * v))) by RLVECT_1:def 3

            .= (u + ( 0. V)) by VECTSP_1: 16

            .= u by RLVECT_1:def 4;

            ua in {ua} by TARSKI:def 1;

            then ua in (UU \/ {ua}) by XBOOLE_0:def 3;

            then

             A8: ua in ( Lin (UU \/ {ua})) by VECTSP_7: 8;

            v in UU by A2, A6, ZFMISC_1: 56;

            then v in (UU \/ {ua}) by XBOOLE_0:def 3;

            then (( - a) * v) in ( Lin (UU \/ {ua})) by VECTSP_4: 21, VECTSP_7: 8;

            then (ua + (( - a) * v)) in ( Lin (UU \/ {ua})) by A8, VECTSP_4: 20;

            hence thesis by A5, A7, STRUCT_0:def 5;

          end;

            suppose

             A9: u = v;

            per cases by A3, A9;

              suppose a <> ( - ( 1_ K));

              then ( 0. K) <> (( - ( 1_ K)) - a) by VECTSP_1: 19;

              then ( 0. K) <> ( - (( - ( 1_ K)) - a)) by VECTSP_1: 28;

              then

               A10: ( 0. K) <> (a + ( 1_ K)) by VECTSP_1: 31;

              ua in {ua} by TARSKI:def 1;

              then

               A11: ua in (UU \/ {ua}) by XBOOLE_0:def 3;

              ua = ((( 1_ K) * u) + (a * u)) by A9, VECTSP_1:def 17

              .= ((( 1. K) + a) * u) by VECTSP_1:def 15;

              then (((( 1. K) + a) " ) * ua) = u by A10, VECTSP_1: 20;

              then u in ( Lin (UU \/ {ua})) by A11, VECTSP_4: 21, VECTSP_7: 8;

              hence thesis by A5, STRUCT_0:def 5;

            end;

              suppose u = ( 0. V);

              then x in ( Lin (UU \/ {ua})) by A5, VECTSP_4: 17;

              hence thesis by STRUCT_0:def 5;

            end;

          end;

        end;

          suppose x <> u;

          then x in UU by A4, ZFMISC_1: 56;

          then x in (UU \/ {ua}) by XBOOLE_0:def 3;

          then x in ( Lin (UU \/ {ua})) by VECTSP_7: 8;

          hence thesis by STRUCT_0:def 5;

        end;

      end;

      then ( Lin U) is Subspace of ( Lin (UU \/ {ua})) by VECTSP_9: 16;

      then

       A12: the carrier of ( Lin U) c= the carrier of ( Lin (UU \/ {ua})) by VECTSP_4:def 2;

      ( Lin (UU \/ {ua})) is Subspace of ( Lin U) by A1, A2, Th13;

      then the carrier of ( Lin (UU \/ {ua})) c= the carrier of ( Lin U) by VECTSP_4:def 2;

      then the carrier of ( Lin U) = the carrier of ( Lin (UU \/ {ua})) by A12;

      hence thesis by VECTSP_4: 29;

    end;

    begin

    definition

      let D be non empty set;

      let n,m,k be Nat;

      let A be Matrix of n, m, D;

      let B be Matrix of n, k, D;

      :: original: ^^

      redefine

      func A ^^ B -> Matrix of n, (( width A) + ( width B)), D ;

      coherence

      proof

        reconsider N = n as Element of NAT by ORDINAL1:def 12;

        set AB = (A ^^ B);

        

         A1: ( dom B) = ( Seg ( len B)) by FINSEQ_1:def 3

        .= ( Seg n) by MATRIX_0:def 2;

        ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3

        .= ( Seg n) by MATRIX_0:def 2;

        

        then

         A2: ( dom AB) = (( Seg n) /\ ( Seg n)) by A1, PRE_POLY:def 4

        .= ( Seg n);

        then

         A3: ( len AB) = N by FINSEQ_1:def 3;

        per cases ;

          suppose

           A4: N = 0 ;

          then AB = {} by A2;

          hence thesis by A4, MATRIX_0: 13;

        end;

          suppose

           A5: N > 0 ;

          then

           A6: N in ( Seg N) by FINSEQ_1: 3;

          then (A . N) = ( Line (A,N)) & (B . N) = ( Line (B,N)) by MATRIX_0: 52;

          then

           A7: (AB . N) = (( Line (A,N)) ^ ( Line (B,N))) by A2, A6, PRE_POLY:def 4;

          

           A8: ( len (( Line (A,N)) ^ ( Line (B,N)))) = (( width A) + ( width B)) by CARD_1:def 7;

          (AB . N) in ( rng AB) by A2, A6, FUNCT_1:def 3;

          then ( width AB) = (( width A) + ( width B)) by A3, A5, A7, A8, MATRIX_0:def 3;

          hence thesis by A3, MATRIX_0: 51;

        end;

      end;

    end

    theorem :: MATRIX15:15

    

     Th15: for D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D holds for i st i in ( Seg n) holds ( Line ((A ^^ B),i)) = (( Line (A,i)) ^ ( Line (B,i)))

    proof

      let D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D;

      set AB = (A ^^ B);

      

       A1: ( len AB) = n & ( dom AB) = ( Seg ( len AB)) by FINSEQ_1:def 3, MATRIX_0:def 2;

      let i such that

       A2: i in ( Seg n);

      ( Line (A,i)) = (A . i) & ( Line (B,i)) = (B . i) by A2, MATRIX_0: 52;

      

      hence (( Line (A,i)) ^ ( Line (B,i))) = (AB . i) by A2, A1, PRE_POLY:def 4

      .= ( Line (AB,i)) by A2, MATRIX_0: 52;

    end;

    theorem :: MATRIX15:16

    

     Th16: for D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D holds for i st i in ( Seg ( width A)) holds ( Col ((A ^^ B),i)) = ( Col (A,i))

    proof

      let D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D;

      let i such that

       A1: i in ( Seg ( width A));

      set AB = (A ^^ B);

      

       A2: ( len AB) = n by MATRIX_0:def 2;

      

       A3: ( len A) = n by MATRIX_0:def 2;

      now

        let j such that

         A4: j in ( Seg n);

        n <> 0 by A4;

        then ( width AB) = (( width A) + ( width B)) by MATRIX_0: 23;

        then ( width A) <= ( width AB) by NAT_1: 11;

        then

         A5: ( Seg ( width A)) c= ( Seg ( width AB)) by FINSEQ_1: 5;

        

         A6: ( dom A) = ( Seg n) by A3, FINSEQ_1:def 3;

        

         A7: ( dom ( Line (A,j))) = ( Seg ( width A)) by FINSEQ_2: 124;

        ( dom AB) = ( Seg n) by A2, FINSEQ_1:def 3;

        

        hence (( Col (AB,i)) . j) = (AB * (j,i)) by A4, MATRIX_0:def 8

        .= (( Line (AB,j)) . i) by A1, A5, MATRIX_0:def 7

        .= ((( Line (A,j)) ^ ( Line (B,j))) . i) by A4, Th15

        .= (( Line (A,j)) . i) by A1, A7, FINSEQ_1:def 7

        .= (A * (j,i)) by A1, MATRIX_0:def 7

        .= (( Col (A,i)) . j) by A4, A6, MATRIX_0:def 8;

      end;

      hence thesis by A3, A2, FINSEQ_2: 119;

    end;

    theorem :: MATRIX15:17

    

     Th17: for D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D holds for i st i in ( Seg ( width B)) holds ( Col ((A ^^ B),(( width A) + i))) = ( Col (B,i))

    proof

      let D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D;

      let i such that

       A1: i in ( Seg ( width B));

      set AB = (A ^^ B);

      

       A2: ( len AB) = n by MATRIX_0:def 2;

      

       A3: ( len B) = n by MATRIX_0:def 2;

      now

        

         A4: ( dom B) = ( Seg n) by A3, FINSEQ_1:def 3;

        let j such that

         A5: j in ( Seg n);

        n <> 0 by A5;

        then ( width AB) = (( width A) + ( width B)) by MATRIX_0: 23;

        then

         A6: (( width A) + i) in ( Seg ( width AB)) by A1, FINSEQ_1: 60;

        

         A7: ( dom ( Line (B,j))) = ( Seg ( width B)) & ( len ( Line (A,j))) = ( width A) by CARD_1:def 7, FINSEQ_2: 124;

        ( dom AB) = ( Seg n) by A2, FINSEQ_1:def 3;

        

        hence (( Col (AB,(( width A) + i))) . j) = (AB * (j,(( width A) + i))) by A5, MATRIX_0:def 8

        .= (( Line (AB,j)) . (( width A) + i)) by A6, MATRIX_0:def 7

        .= ((( Line (A,j)) ^ ( Line (B,j))) . (( width A) + i)) by A5, Th15

        .= (( Line (B,j)) . i) by A1, A7, FINSEQ_1:def 7

        .= (B * (j,i)) by A1, MATRIX_0:def 7

        .= (( Col (B,i)) . j) by A5, A4, MATRIX_0:def 8;

      end;

      hence thesis by A3, A2, FINSEQ_2: 119;

    end;

    theorem :: MATRIX15:18

    

     Th18: for D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D holds for pA,pB be FinSequence of D st ( len pA) = ( width A) & ( len pB) = ( width B) holds ( ReplaceLine ((A ^^ B),i,(pA ^ pB))) = (( ReplaceLine (A,i,pA)) ^^ ( ReplaceLine (B,i,pB)))

    proof

      let D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D;

      let pA,pB be FinSequence of D such that

       A1: ( len pA) = ( width A) and

       A2: ( len pB) = ( width B);

      set RB = ( RLine (B,i,pB));

      set RA = ( RLine (A,i,pA));

      set AB = (A ^^ B);

      set RAB = ( RLine (AB,i,(pA ^ pB)));

      set Rab = (RA ^^ RB);

       A3:

      now

        pA is Element of (( width A) -tuples_on D) & pB is Element of (( width B) -tuples_on D) by A1, A2, FINSEQ_2: 92;

        then (pA ^ pB) is Tuple of (( width A) + ( width B)), D;

        then (pA ^ pB) is Element of ((( width A) + ( width B)) -tuples_on D) by FINSEQ_2: 131;

        then

         A4: ( len (pA ^ pB)) = (( width A) + ( width B)) by CARD_1:def 7;

        let j such that

         A5: 1 <= j & j <= n;

        

         A6: j in ( Seg n) by A5;

        

         A7: ( width AB) = (( width A) + ( width B)) by A5, MATRIX_0: 23;

         A8:

        now

          per cases ;

            suppose

             A9: i = j;

            then

             A10: ( Line (RB,j)) = pB by A2, A6, MATRIX11: 28;

            ( Line (RAB,j)) = (pA ^ pB) & ( Line (RA,j)) = pA by A1, A6, A4, A7, A9, MATRIX11: 28;

            hence ( Line (RAB,j)) = ( Line (Rab,j)) by A6, A10, Th15;

          end;

            suppose

             A11: i <> j;

            then

             A12: ( Line (RB,j)) = ( Line (B,j)) by A6, MATRIX11: 28;

            ( Line (RAB,j)) = ( Line (AB,j)) & ( Line (RA,j)) = ( Line (A,j)) by A6, A11, MATRIX11: 28;

            

            hence ( Line (RAB,j)) = (( Line (RA,j)) ^ ( Line (RB,j))) by A6, A12, Th15

            .= ( Line (Rab,j)) by A6, Th15;

          end;

        end;

        

        thus (RAB . j) = ( Line (RAB,j)) by A6, MATRIX_0: 52

        .= (Rab . j) by A6, A8, MATRIX_0: 52;

      end;

      ( len RAB) = n & ( len Rab) = n by MATRIX_0:def 2;

      hence thesis by A3;

    end;

    theorem :: MATRIX15:19

    

     Th19: for D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D holds ( Segm ((A ^^ B),( Seg n),( Seg ( width A)))) = A & ( Segm ((A ^^ B),( Seg n),(( Seg (( width A) + ( width B))) \ ( Seg ( width A))))) = B

    proof

      let D be non empty set, A be Matrix of n, m, D, B be Matrix of n, k, D;

      set AB = (A ^^ B);

      

       A1: ( card ( Seg n)) = n by FINSEQ_1: 57;

      

       A2: ( len A) = n by MATRIX_0:def 2;

      then

      reconsider A9 = A as Matrix of n, ( width A), D by MATRIX_0: 51;

      set S1 = ( Segm (AB,( Seg n),( Seg ( width A))));

      

       A3: ( card ( Seg ( width A))) = ( width A) by FINSEQ_1: 57;

      

       A4: ( len AB) = n by MATRIX_0:def 2;

      now

        let i, j such that

         A5: [i, j] in ( Indices A9);

        reconsider I = i, J = j as Element of NAT by ORDINAL1:def 12;

        

         A6: ( dom A) = ( Seg n) by A2, FINSEQ_1:def 3;

        n <> 0 by A5, MATRIX_0: 22;

        then ( Indices A9) = [:( Seg n), ( Seg ( width A)):] by MATRIX_0: 23;

        then

         A7: I in ( Seg n) by A5, ZFMISC_1: 87;

        

         A8: J in ( Seg ( width A)) by A5, ZFMISC_1: 87;

        

        then

         A9: J = (( idseq ( width A)) . J) by FINSEQ_2: 49

        .= (( Sgm ( Seg ( width A))) . J) by FINSEQ_3: 48;

        ( dom S1) = ( Seg ( len S1)) by FINSEQ_1:def 3

        .= ( Seg n) by A1, MATRIX_0:def 2;

        

        hence (S1 * (i,j)) = (( Col (S1,J)) . I) by A7, MATRIX_0:def 8

        .= (( Col (AB,(( Sgm ( Seg ( width A))) . J))) . I) by A4, A3, A8, MATRIX13: 50

        .= (( Col (A,J)) . I) by A8, A9, Th16

        .= (A * (i,j)) by A7, A6, MATRIX_0:def 8;

      end;

      hence A = S1 by A1, A3, MATRIX_0: 27;

      set w = (( width A) + ( width B));

      set SS = (( Seg w) \ ( Seg ( width A)));

      set S2 = ( Segm (AB,( Seg n),SS));

      

       A10: ( len B) = n by MATRIX_0:def 2;

      then

      reconsider B9 = B as Matrix of n, ( width B), D by MATRIX_0: 51;

      ( width A) <= w by NAT_1: 11;

      then ( card ( Seg (( width A) + ( width B)))) = (( width A) + ( width B)) & ( Seg ( width A)) c= ( Seg w) by FINSEQ_1: 5, FINSEQ_1: 57;

      

      then

       A11: ( card SS) = (w - ( width A)) by A3, CARD_2: 44

      .= ( width B);

      now

        

         A12: ( dom B) = ( Seg n) by A10, FINSEQ_1:def 3;

        let i, j such that

         A13: [i, j] in ( Indices B9);

        reconsider I = i, J = j as Element of NAT by ORDINAL1:def 12;

        

         A14: J in ( Seg ( width B)) by A13, ZFMISC_1: 87;

        n <> 0 by A13, MATRIX_0: 22;

        then ( Indices B9) = [:( Seg n), ( Seg ( width B)):] by MATRIX_0: 23;

        then

         A15: I in ( Seg n) by A13, ZFMISC_1: 87;

        ( dom S2) = ( Seg ( len S2)) by FINSEQ_1:def 3

        .= ( Seg n) by A1, MATRIX_0:def 2;

        

        hence (S2 * (i,j)) = (( Col (S2,J)) . I) by A15, MATRIX_0:def 8

        .= (( Col (AB,(( Sgm SS) . J))) . I) by A4, A11, A14, MATRIX13: 50

        .= (( Col (AB,(( width A) + J))) . I) by A14, Th8

        .= (( Col (B,J)) . I) by A14, Th17

        .= (B9 * (i,j)) by A15, A12, MATRIX_0:def 8;

      end;

      hence thesis by A1, A11, MATRIX_0: 27;

    end;

    theorem :: MATRIX15:20

    

     Th20: for A,B be Matrix of K st ( len A) = ( len B) holds ( the_rank_of A) <= ( the_rank_of (A ^^ B)) & ( the_rank_of B) <= ( the_rank_of (A ^^ B))

    proof

      let A,B be Matrix of K such that

       A1: ( len A) = ( len B);

      set L = ( len A);

      reconsider B9 = B as Matrix of L, ( width B), K by A1, MATRIX_0: 51;

      reconsider A9 = A as Matrix of L, ( width A), K by MATRIX_0: 51;

      set AB = (A9 ^^ B9);

      per cases ;

        suppose L = 0 ;

        hence thesis by A1, MATRIX13: 74;

      end;

        suppose

         A2: L > 0 ;

        

         A3: ( Segm (AB,( Seg L),( Seg ( width A)))) = A by Th19;

        

         A4: ( Indices AB) = [:( Seg L), ( Seg (( width A) + ( width B))):] by A2, MATRIX_0: 23;

        

         A5: ( width AB) = (( width A) + ( width B)) by A2, MATRIX_0: 23;

        then ( width A) <= ( width AB) by NAT_1: 11;

        then ( Seg ( width A)) c= ( Seg ( width AB)) by FINSEQ_1: 5;

        then

         A6: [:( Seg L), ( Seg ( width A)):] c= ( Indices AB) by A5, A4, ZFMISC_1: 95;

        (( Seg ( width AB)) \ ( Seg ( width A))) c= ( Seg ( width AB)) by XBOOLE_1: 36;

        then

         A7: [:( Seg L), (( Seg ( width AB)) \ ( Seg ( width A))):] c= ( Indices AB) by A5, A4, ZFMISC_1: 95;

        ( Segm (AB,( Seg L),(( Seg ( width AB)) \ ( Seg ( width A))))) = B by A5, Th19;

        hence thesis by A3, A6, A7, MATRIX13: 79;

      end;

    end;

    theorem :: MATRIX15:21

    for A,B be Matrix of K st ( len A) = ( len B) & ( len A) = ( the_rank_of A) holds ( the_rank_of A) = ( the_rank_of (A ^^ B))

    proof

      let A,B be Matrix of K such that

       A1: ( len A) = ( len B) and

       A2: ( len A) = ( the_rank_of A);

      set L = ( len A);

      reconsider B9 = B as Matrix of L, ( width B), K by A1, MATRIX_0: 51;

      reconsider A9 = A as Matrix of L, ( width A), K by MATRIX_0: 51;

      

       A3: ( the_rank_of (A9 ^^ B9)) <= ( len (A9 ^^ B9)) & ( len (A9 ^^ B9)) = L by MATRIX13: 74, MATRIX_0:def 2;

      ( the_rank_of (A9 ^^ B9)) >= L by A1, A2, Th20;

      hence thesis by A2, A3, XXREAL_0: 1;

    end;

    theorem :: MATRIX15:22

    

     Th22: for A,B be Matrix of K st ( len A) = ( len B) & ( width A) = 0 holds (A ^^ B) = B & (B ^^ A) = B

    proof

      let A,B be Matrix of K such that

       A1: ( len A) = ( len B) and

       A2: ( width A) = 0 ;

      

       A3: ( Seg ( width A)) = {} by A2;

      set L = ( len A);

      reconsider B9 = B as Matrix of L, ( width B), K by A1, MATRIX_0: 51;

      reconsider A9 = A as Matrix of L, ( width A), K by MATRIX_0: 51;

      set AB = (A9 ^^ B9);

      set BA = (B9 ^^ A9);

      per cases ;

        suppose

         A4: L = 0 ;

        then ( len BA) = 0 by MATRIX_0:def 2;

        then

         A5: BA = {} ;

        ( len AB) = 0 by A4, MATRIX_0:def 2;

        then AB = {} ;

        hence thesis by A1, A4, A5;

      end;

        suppose

         A6: L > 0 ;

        then ( width AB) = ( width B) & ( len AB) = L by A2, MATRIX_0: 23;

        

        hence (A ^^ B) = ( Segm (AB,( Seg L),(( Seg ( width B)) \ ( Seg ( width A))))) by A3, MATRIX13: 46

        .= B by A2, Th19;

        ( width BA) = ( width B) & ( len BA) = L by A2, A6, MATRIX_0: 23;

        

        hence (B ^^ A) = ( Segm (BA,( Seg L),( Seg ( width B)))) by MATRIX13: 46

        .= B by Th19;

      end;

    end;

    theorem :: MATRIX15:23

    

     Th23: for A,B be Matrix of K st B = ( 0. (K,( len A),m)) holds ( the_rank_of A) = ( the_rank_of (A ^^ B))

    proof

      let A,B be Matrix of K such that

       A1: B = ( 0. (K,( len A),m));

      

       A2: ( len B) = ( len A) by A1, MATRIX_0:def 2;

      set L = ( len A);

      reconsider B9 = B as Matrix of L, ( width B), K by A2, MATRIX_0: 51;

      reconsider A9 = A as Matrix of L, ( width A), K by MATRIX_0: 51;

      set AB = (A9 ^^ B9);

      per cases ;

        suppose ( width B) = 0 ;

        hence thesis by A2, Th22;

      end;

        suppose ( width B) > 0 ;

        then

         A3: L > 0 by A2, MATRIX_0:def 3;

        then

         A4: ( width AB) = (( width A) + ( width B)) by MATRIX_0: 23;

        

         A5: ( len AB) = L by A3, MATRIX_0: 23;

         A6:

        now

          set L0 = (( len AB) |-> ( 0. K));

          let i such that

           A7: i in (( Seg ( width AB)) \ ( Seg ( width A)));

          

           A8: i in ( Seg ( width AB)) by A7, XBOOLE_0:def 5;

           not i in ( Seg ( width A)) by A7, XBOOLE_0:def 5;

          then

           A9: i < 1 or i > ( width A);

          then

          reconsider n = (i - ( width A)) as Element of NAT by A8, FINSEQ_1: 1, NAT_1: 21;

          

           A10: i = (n + ( width A));

          n <> 0 by A8, A9, FINSEQ_1: 1;

          then

           A11: n in ( Seg ( width B)) by A4, A8, A10, FINSEQ_1: 61;

           A12:

          now

            let i such that

             A13: 1 <= i & i <= L;

            

             A14: i in ( Seg L) by A13;

            then

             A15: (L0 . i) = ( 0. K) by A5, FINSEQ_2: 57;

            ( Seg L) = ( dom B) by A2, FINSEQ_1:def 3;

            then (( Col (B9,n)) . i) = (B9 * (i,n)) & [i, n] in ( Indices B) by A11, A14, MATRIX_0:def 8, ZFMISC_1: 87;

            hence (( Col (B9,n)) . i) = (L0 . i) by A1, A15, MATRIX_3: 1;

          end;

          

           A16: ( len ( Col (B,n))) = L & ( len L0) = L by A2, A5, CARD_1:def 7;

          ( Col (AB,i)) = ( Col (B9,n)) by A10, A11, Th17;

          hence ( Col (AB,i)) = (( len AB) |-> ( 0. K)) by A16, A12;

        end;

        ( width A) <= ( width AB) by A4, NAT_1: 11;

        then ( Seg ( width A)) c= ( Seg ( width AB)) by FINSEQ_1: 5;

        

        hence ( the_rank_of (A ^^ B)) = ( the_rank_of ( Segm (AB,( Seg ( len AB)),( Seg ( width A))))) by A6, Th12

        .= ( the_rank_of A) by A5, Th19;

      end;

    end;

    theorem :: MATRIX15:24

    

     Th24: for A,B be Matrix of K st ( the_rank_of A) = ( the_rank_of (A ^^ B)) & ( len A) = ( len B) holds for N st N c= ( dom A) & for i st i in N holds ( Line (A,i)) = (( width A) |-> ( 0. K)) holds for i st i in N holds ( Line (B,i)) = (( width B) |-> ( 0. K))

    proof

      let A,B be Matrix of K such that

       A1: ( the_rank_of A) = ( the_rank_of (A ^^ B)) and

       A2: ( len A) = ( len B);

      reconsider B9 = B as Matrix of ( len A), ( width B), K by A2, MATRIX_0: 51;

      reconsider A9 = A as Matrix of ( len A), ( width A), K by MATRIX_0: 51;

      set AB = (A9 ^^ B9);

      let N such that

       A3: N c= ( dom A) and

       A4: for i st i in N holds ( Line (A,i)) = (( width A) |-> ( 0. K));

      let i such that

       A5: i in N;

      ( dom A) <> {} by A3, A5;

      then ( Seg ( len A)) <> {} by FINSEQ_1:def 3;

      then

       A6: ( len A) <> 0 ;

      then

       A7: ( width AB) = (( width A) + ( width B)) by MATRIX_0: 23;

      then ( width A) <= ( width AB) by NAT_1: 11;

      then

       A8: ( Seg ( width A)) c= ( Seg ( width AB)) by FINSEQ_1: 5;

      

       A9: ( card ( Seg ( len A))) = ( len A) by FINSEQ_1: 57;

      

       A10: ( Segm (AB,( Seg ( len A)),( Seg ( width A)))) = A by Th19;

      

       A11: ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3;

      

       A12: (( Sgm ( Seg ( len A))) . i) = (( idseq ( len A)) . i) by FINSEQ_3: 48

      .= i by A3, A5, A11, FINSEQ_2: 49;

      ( card ( Seg ( width A))) = ( width A) by FINSEQ_1: 57;

      

      then

       A13: (( card ( Seg ( width A))) |-> ( 0. K)) = ( Line (A,i)) by A4, A5

      .= (( Line (AB,i)) * ( Sgm ( Seg ( width A)))) by A3, A5, A11, A10, A8, A9, A12, MATRIX13: 47;

      assume ( Line (B,i)) <> (( width B) |-> ( 0. K));

      then

      consider j such that

       A14: j in ( Seg ( width B)) and

       A15: (( Line (B,i)) . j) <> ((( width B) |-> ( 0. K)) . j) by FINSEQ_2: 119;

      

       A16: ( len ( Line (A9,i))) = ( width A9) & 1 <= j by A14, FINSEQ_1: 1, MATRIX_0:def 7;

      ( len ( Line (B9,i))) = ( width B9) by MATRIX_0:def 7;

      then

       A17: j <= ( len ( Line (B9,i))) by A14, FINSEQ_1: 1;

      

       A18: (j + ( width A)) in ( Seg ( width AB)) by A14, A7, FINSEQ_1: 60;

      

      then (AB * (i,(j + ( width A)))) = (( Line (AB,i)) . (j + ( width A))) by MATRIX_0:def 7

      .= ((( Line (A9,i)) ^ ( Line (B9,i))) . (j + ( width A))) by A3, A5, A11, Th15

      .= (( Line (B9,i)) . j) by A16, A17, FINSEQ_1: 65;

      then

       A19: (AB * (i,(j + ( width A)))) <> ( 0. K) by A14, A15, FINSEQ_2: 57;

      consider P,Q be without_zero finite Subset of NAT such that

       A20: [:P, Q:] c= ( Indices A9) and

       A21: ( card P) = ( card Q) and

       A22: ( card P) = ( the_rank_of A9) and

       A23: ( Det ( EqSegm (A9,P,Q))) <> ( 0. K) by MATRIX13:def 4;

      P = {} iff Q = {} by A21;

      then

      consider P2,Q2 be without_zero finite Subset of NAT such that

       A24: P2 c= ( Seg ( len A)) and

       A25: Q2 c= ( Seg ( width A)) and

       A26: P2 = (( Sgm ( Seg ( len A))) .: P) and Q2 = (( Sgm ( Seg ( width A))) .: Q) and ( card P2) = ( card P) and ( card Q2) = ( card Q) and

       A27: ( Segm (A,P,Q)) = ( Segm (AB,P2,Q2)) by A20, A10, MATRIX13: 57;

      

       A28: ( Segm (AB,P2,Q2)) = ( EqSegm (A,P,Q)) by A21, A27, MATRIX13:def 3;

      

       A29: ( dom AB) = ( Seg ( len AB)) & ( len AB) = ( len A) by A6, FINSEQ_1:def 3, MATRIX_0: 23;

      then

       A30: [:P2, ( Seg ( width A)):] c= ( Indices AB) by A24, A8, ZFMISC_1: 96;

      j >= 1 by A14, FINSEQ_1: 1;

      then (j + ( width A)) >= (1 + ( width A)) by XREAL_1: 6;

      then (j + ( width A)) > ( width A) by NAT_1: 13;

      then not (j + ( width A)) in Q2 by A25, FINSEQ_1: 1;

      then

       A31: (j + ( width A)) in (( Seg ( width AB)) \ Q2) by A18, XBOOLE_0:def 5;

       not i in P2

      proof

        

         A32: ( Line (A,i)) = (( width A) |-> ( 0. K)) by A4, A5

        .= (( 0. K) * ( Line (A,i))) by FVSUM_1: 58;

        

         A33: ( Sgm ( Seg ( len A))) = ( idseq ( len A)) by FINSEQ_3: 48

        .= ( id ( Seg ( len A)));

        

         A34: P c= ( Seg ( len A)) by A20, A21, MATRIX13: 67;

        then

         A35: ( rng ( Sgm P)) = P by FINSEQ_1:def 13;

        assume i in P2;

        then i in P by A26, A33, A34, FUNCT_1: 92;

        then

        consider x be object such that

         A36: x in ( dom ( Sgm P)) and

         A37: (( Sgm P) . x) = i by A35, FUNCT_1:def 3;

        reconsider x as Element of NAT by A36;

        

         A38: ( Segm (A,P,Q)) = ( EqSegm (A,P,Q)) by A21, MATRIX13:def 3;

        

         A39: Q c= ( Seg ( width A)) by A20, A21, MATRIX13: 67;

        then

         A40: ( rng ( Sgm Q)) = Q by FINSEQ_1:def 13;

        

         A41: ( dom ( Sgm P)) = ( Seg ( card P)) by A34, FINSEQ_3: 40;

        then ( dom ( Line (A,i))) = ( Seg ( width A)) & ( Line (( Segm (A,P,Q)),x)) = (( Line (A,i)) * ( Sgm Q)) by A39, A36, A37, FINSEQ_2: 124, MATRIX13: 47;

        then ( Line (( Segm (A,P,Q)),x)) = (( 0. K) * ( Line (( Segm (A,P,Q)),x))) by A39, A40, A32, MATRIX13: 87;

        

        then (( 0. K) * ( Det ( EqSegm (A,P,Q)))) = ( Det ( RLine (( EqSegm (A,P,Q)),x,( Line (( EqSegm (A,P,Q)),x))))) by A41, A36, A38, MATRIX11: 35

        .= ( Det ( EqSegm (A,P,Q))) by MATRIX11: 30;

        hence thesis by A23;

      end;

      then i in (( dom AB) \ P2) by A3, A5, A11, A29, XBOOLE_0:def 5;

      then ( card P) > ( the_rank_of ( Segm (AB,P2,Q2))) by A1, A19, A22, A25, A30, A31, A13, Th10;

      hence thesis by A23, A28, MATRIX13: 83;

    end;

    begin

    reserve D for non empty set,

bD for FinSequence of D,

b,f,g for FinSequence of K,

MD for Matrix of D;

    definition

      let D be non empty set;

      let b be FinSequence of D;

      :: MATRIX15:def1

      func LineVec2Mx b -> Matrix of 1, ( len b), D equals <*b*>;

      coherence ;

      :: MATRIX15:def2

      func ColVec2Mx b -> Matrix of ( len b), 1, D equals ( <*b*> @ );

      coherence

      proof

        set B = <*b*>;

        

         A1: ( len B) = 1 by MATRIX_0: 23;

        

         A2: ( width B) = ( len b) by MATRIX_0: 23;

        

         A3: ( len (B @ )) = ( width B) by MATRIX_0:def 6;

        per cases ;

          suppose

           A4: ( len b) = 0 ;

          then (B @ ) = {} by A3, MATRIX_0: 23;

          hence thesis by A4, MATRIX_0: 13;

        end;

          suppose ( len b) > 0 ;

          then ( width (B @ )) = ( len B) by A2, MATRIX_0: 54;

          hence thesis by A1, A2, A3, MATRIX_0: 51;

        end;

      end;

    end

    theorem :: MATRIX15:25

    

     Th25: MD = ( LineVec2Mx bD) iff ( Line (MD,1)) = bD & ( len MD) = 1

    proof

      thus MD = ( LineVec2Mx bD) implies ( Line (MD,1)) = bD & ( len MD) = 1

      proof

        1 in ( Seg 1);

        then

         A1: ( Line (( LineVec2Mx bD),1)) = (( LineVec2Mx bD) . 1) by MATRIX_0: 52;

        assume MD = ( LineVec2Mx bD);

        hence thesis by A1, FINSEQ_1: 40;

      end;

      assume that

       A2: ( Line (MD,1)) = bD and

       A3: ( len MD) = 1;

      reconsider md = MD as Matrix of 1, ( width MD), D by A3, MATRIX_0: 51;

      1 in ( Seg 1);

      then (md . 1) = bD by A2, MATRIX_0: 52;

      hence thesis by A3, FINSEQ_1: 40;

    end;

    theorem :: MATRIX15:26

    

     Th26: (( len MD) <> 0 or ( len bD) <> 0 ) implies (MD = ( ColVec2Mx bD) iff ( Col (MD,1)) = bD & ( width MD) = 1)

    proof

      assume

       A1: ( len MD) <> 0 or ( len bD) <> 0 ;

      thus MD = ( ColVec2Mx bD) implies ( Col (MD,1)) = bD & ( width MD) = 1

      proof

        ( len ( LineVec2Mx bD)) = 1 by Th25;

        then

         A2: ( dom ( LineVec2Mx bD)) = ( Seg 1) by FINSEQ_1:def 3;

        assume

         A3: MD = ( ColVec2Mx bD);

        1 in ( Seg 1);

        

        hence ( Col (MD,1)) = ( Line (( LineVec2Mx bD),1)) by A3, A2, MATRIX_0: 58

        .= bD by Th25;

        ( len MD) = ( len bD) by A3, MATRIX_0:def 2;

        hence thesis by A1, A3, MATRIX_0: 23;

      end;

      assume that

       A4: ( Col (MD,1)) = bD and

       A5: ( width MD) = 1;

      

       A6: ( len MD) > 0 by A1, A4, MATRIX_0:def 8;

      

       A7: ( len (MD @ )) = 1 by A5, MATRIX_0:def 6;

      1 in ( Seg 1);

      then ( Line ((MD @ ),1)) = bD by A4, A5, MATRIX_0: 59;

      

      then (( LineVec2Mx bD) @ ) = ((MD @ ) @ ) by A7, Th25

      .= MD by A5, A6, MATRIX_0: 57;

      hence thesis;

    end;

    theorem :: MATRIX15:27

    ( len f) = ( len g) implies (( LineVec2Mx f) + ( LineVec2Mx g)) = ( LineVec2Mx (f + g))

    proof

      set Lf = ( LineVec2Mx f);

      set Lg = ( LineVec2Mx g);

      

       A1: ( len Lf) = 1 by CARD_1:def 7;

      assume

       A2: ( len f) = ( len g);

      then

      reconsider F = f, G = g as Element of (( len f) -tuples_on the carrier of K) by FINSEQ_2: 92;

      

       A3: ( width Lg) = ( len f) by A2, MATRIX_0: 23;

      set FG = (F + G);

      set Lfg = ( LineVec2Mx FG);

      

       A4: ( len FG) = ( len f) & ( len Lfg) = 1 by CARD_1:def 7;

      

       A5: ( width Lfg) = ( len FG) by MATRIX_0: 23;

      

       A6: ( len (Lf + Lg)) = ( len Lf) by MATRIX_3:def 3;

      

       A7: ( width (Lf + Lg)) = ( width Lf) by MATRIX_3:def 3;

      

       A8: ( width Lf) = ( len f) by MATRIX_0: 23;

      per cases ;

        suppose ( len f) = 0 ;

        then ( Seg ( len f)) = {} ;

        then for i, j st [i, j] in ( Indices (Lf + Lg)) holds ((Lf + Lg) * (i,j)) = (Lfg * (i,j)) by A7, A8, ZFMISC_1: 90;

        hence thesis by A4, A1, A6, A7, A8, A5, MATRIX_0: 21;

      end;

        suppose

         A9: ( len f) > 0 ;

        

         A10: ( dom Lf) = ( Seg 1) & 1 in ( Seg 1) by A1, FINSEQ_1:def 3;

        ( len f) in ( Seg ( len f)) by A9, FINSEQ_1: 3;

        then [1, ( len f)] in ( Indices Lf) by A8, A10, ZFMISC_1: 87;

        

        then ( Line ((Lf + Lg),1)) = (( Line (Lf,1)) + ( Line (Lg,1))) by A3, MATRIX_0: 23, MATRIX_4: 59

        .= (f + ( Line (Lg,1))) by Th25

        .= (f + g) by Th25;

        hence thesis by A1, A6, Th25;

      end;

    end;

    theorem :: MATRIX15:28

    

     Th28: ( len f) = ( len g) implies (( ColVec2Mx f) + ( ColVec2Mx g)) = ( ColVec2Mx (f + g))

    proof

      set Cf = ( ColVec2Mx f);

      set Cg = ( ColVec2Mx g);

      

       A1: ( len Cf) = ( len f) by MATRIX_0:def 2;

      assume

       A2: ( len f) = ( len g);

      then

      reconsider F = f, G = g as Element of (( len f) -tuples_on the carrier of K) by FINSEQ_2: 92;

      

       A3: ( len Cg) = ( len f) by A2, MATRIX_0:def 2;

      set FG = (F + G);

      set Cfg = ( ColVec2Mx FG);

      

       A4: ( len Cfg) = ( len FG) by MATRIX_0:def 2;

      

       A5: ( len FG) = ( len f) & ( width (Cf + Cg)) = ( width Cf) by CARD_1:def 7, MATRIX_3:def 3;

      

       A6: ( len (Cf + Cg)) = ( len Cf) by MATRIX_3:def 3;

      per cases ;

        suppose

         A7: ( len f) = 0 ;

        then (Cf + Cg) = {} by A6, MATRIX_0:def 2;

        hence thesis by A4, A7;

      end;

        suppose

         A8: ( len f) > 0 ;

        

         A9: ( dom Cf) = ( Seg ( len f)) & 1 in ( Seg 1) by A1, FINSEQ_1:def 3;

        

         A10: ( width Cf) = 1 by A8, MATRIX_0: 23;

        ( len f) in ( Seg ( len f)) by A8, FINSEQ_1: 3;

        then [( len f), 1] in ( Indices Cf) by A9, A10, ZFMISC_1: 87;

        

        then ( Col ((Cf + Cg),1)) = (( Col (Cf,1)) + ( Col (Cg,1))) by A1, A3, MATRIX_4: 60

        .= (f + ( Col (Cg,1))) by A8, Th26

        .= (f + g) by A2, A8, Th26;

        hence thesis by A5, A8, A10, Th26;

      end;

    end;

    theorem :: MATRIX15:29

    (a * ( LineVec2Mx f)) = ( LineVec2Mx (a * f))

    proof

      

       A1: ( len (a * ( LineVec2Mx f))) = ( len ( LineVec2Mx f)) by MATRIX_3:def 5;

      

       A2: ( len ( LineVec2Mx f)) = 1 by MATRIX_0:def 2;

      

      then ( Line ((a * ( LineVec2Mx f)),1)) = (a * ( Line (( LineVec2Mx f),1))) by MATRIXR1: 20

      .= (a * f) by Th25;

      hence thesis by A2, A1, Th25;

    end;

    theorem :: MATRIX15:30

    

     Th30: (a * ( ColVec2Mx f)) = ( ColVec2Mx (a * f))

    proof

      

       A1: ( len f) = ( len (a * f)) by MATRIXR1: 16;

      per cases ;

        suppose

         A2: ( len f) = 0 ;

        ( len ( ColVec2Mx f)) = ( len (a * ( ColVec2Mx f))) by MATRIX_3:def 5;

        then

         A3: (a * ( ColVec2Mx f)) = {} by A2, MATRIX_0:def 2;

        ( len ( ColVec2Mx (a * f))) = 0 by A1, A2, MATRIX_0:def 2;

        hence thesis by A3;

      end;

        suppose

         A4: ( len f) > 0 ;

        

         A5: ( width (a * ( ColVec2Mx f))) = ( width ( ColVec2Mx f)) by MATRIX_3:def 5;

        

         A6: ( width ( ColVec2Mx f)) = 1 by A4, MATRIX_0: 23;

        

        then ( Col ((a * ( ColVec2Mx f)),1)) = (a * ( Col (( ColVec2Mx f),1))) by MATRIXR1: 19

        .= (a * f) by A4, Th26;

        hence thesis by A1, A4, A6, A5, Th26;

      end;

    end;

    theorem :: MATRIX15:31

    ( LineVec2Mx (k |-> ( 0. K))) = ( 0. (K,1,k))

    proof

      ( card (k |-> ( 0. K))) = k by CARD_1:def 7;

      then

      reconsider L = ( LineVec2Mx (k |-> ( 0. K))) as Matrix of 1, k, K;

      set Z = ( 0. (K,1,k));

      now

        

         A1: ( width L) = k by MATRIX_0: 23;

        

         A2: ( dom L) = ( Seg ( len L)) & ( len L) = 1 by FINSEQ_1:def 3, MATRIX_0:def 2;

        let i, j such that

         A3: [i, j] in ( Indices L);

        

         A4: j in ( Seg ( width L)) by A3, ZFMISC_1: 87;

        i in ( dom L) by A3, ZFMISC_1: 87;

        then

         A5: i = 1 by A2, FINSEQ_1: 2, TARSKI:def 1;

        ( Indices Z) = ( Indices L) by MATRIX_0: 26;

        

        hence (Z * (i,j)) = ( 0. K) by A3, MATRIX_3: 1

        .= ((k |-> ( 0. K)) . j) by A4, A1, FINSEQ_2: 57

        .= (( Line (L,i)) . j) by A5, Th25

        .= (L * (i,j)) by A4, MATRIX_0:def 7;

      end;

      hence thesis by MATRIX_0: 27;

    end;

    theorem :: MATRIX15:32

    

     Th32: ( ColVec2Mx (k |-> ( 0. K))) = ( 0. (K,k,1))

    proof

      ( card (k |-> ( 0. K))) = k by CARD_1:def 7;

      then

      reconsider C = ( ColVec2Mx (k |-> ( 0. K))) as Matrix of k, 1, K;

      set Z = ( 0. (K,k,1));

      now

        

         A1: ( len (k |-> ( 0. K))) = k by CARD_1:def 7;

        let i, j such that

         A2: [i, j] in ( Indices C);

        

         A3: i in ( dom C) by A2, ZFMISC_1: 87;

        

         A4: j in ( Seg ( width C)) by A2, ZFMISC_1: 87;

        

         A5: ( dom C) = ( Seg ( len C)) & ( len C) = ( len (k |-> ( 0. K))) by FINSEQ_1:def 3, MATRIX_0:def 2;

        then ( width C) = 1 by A3, A1, Th26;

        then

         A6: j = 1 by A4, FINSEQ_1: 2, TARSKI:def 1;

        ( Indices Z) = ( Indices C) by MATRIX_0: 26;

        

        hence (Z * (i,j)) = ( 0. K) by A2, MATRIX_3: 1

        .= ((k |-> ( 0. K)) . i) by A3, A5, A1, FINSEQ_2: 57

        .= (( Col (C,j)) . i) by A3, A5, A1, A6, Th26

        .= (C * (i,j)) by A3, MATRIX_0:def 8;

      end;

      hence thesis by MATRIX_0: 27;

    end;

    begin

    definition

      let K;

      let A, B;

      :: MATRIX15:def3

      func Solutions_of (A,B) -> set equals { X : ( len X) = ( width A) & ( width X) = ( width B) & (A * X) = B };

      coherence ;

    end

    theorem :: MATRIX15:33

    

     Th33: ( Solutions_of (A,B)) is non empty implies ( len A) = ( len B)

    proof

      assume ( Solutions_of (A,B)) is non empty;

      then

      consider x be object such that

       A1: x in ( Solutions_of (A,B));

      ex X st X = x & ( len X) = ( width A) & ( width X) = ( width B) & (A * X) = B by A1;

      hence thesis by MATRIX_3:def 4;

    end;

    theorem :: MATRIX15:34

    X in ( Solutions_of (A,B)) & i in ( Seg ( width X)) & ( Col (X,i)) = (( len X) |-> ( 0. K)) implies ( Col (B,i)) = (( len B) |-> ( 0. K))

    proof

      assume that

       A1: X in ( Solutions_of (A,B)) and

       A2: i in ( Seg ( width X)) and

       A3: ( Col (X,i)) = (( len X) |-> ( 0. K));

      set LB0 = (( len B) |-> ( 0. K));

      consider X1 such that

       A4: X = X1 and

       A5: ( len X1) = ( width A) and

       A6: ( width X1) = ( width B) and

       A7: (A * X1) = B by A1;

       A8:

      now

        let k such that

         A9: 1 <= k & k <= ( len B);

        

         A10: k in ( Seg ( len B)) by A9;

        ( Indices B) = [:( Seg ( len B)), ( Seg ( width B)):] by FINSEQ_1:def 3;

        then [k, i] in ( Indices B) by A2, A4, A6, A10, ZFMISC_1: 87;

        

        then

         A11: (B * (k,i)) = (( Line (A,k)) "*" ( Col (X1,i))) by A5, A7, MATRIX_3:def 4

        .= ( Sum (( 0. K) * ( Line (A,k)))) by A3, A4, A5, FVSUM_1: 66

        .= (( 0. K) * ( Sum ( Line (A,k)))) by FVSUM_1: 73

        .= ( 0. K)

        .= (LB0 . k) by A10, FINSEQ_2: 57;

        k in ( dom B) by A10, FINSEQ_1:def 3;

        hence (( Col (B,i)) . k) = (LB0 . k) by A11, MATRIX_0:def 8;

      end;

      ( len ( Col (B,i))) = ( len B) & ( len LB0) = ( len B) by CARD_1:def 7;

      hence thesis by A8;

    end;

    theorem :: MATRIX15:35

    

     Th35: X in ( Solutions_of (A,B)) implies (a * X) in ( Solutions_of (A,(a * B))) & X in ( Solutions_of ((a * A),(a * B)))

    proof

      

       A1: ( width (a * B)) = ( width B) & ( width (a * A)) = ( width A) by MATRIX_3:def 5;

      assume X in ( Solutions_of (A,B));

      then

      consider X1 such that

       A2: X = X1 & ( len X1) = ( width A) and

       A3: ( width X1) = ( width B) & (A * X1) = B;

      

       A4: ( len (a * X)) = ( width A) & ( width (a * X)) = ( width X1) by A2, MATRIX_3:def 5;

      (A * (a * X)) = (a * (A * X)) & ((a * A) * X) = (a * (A * X)) by A2, Th1, MATRIXR1: 22;

      hence thesis by A2, A3, A4, A1;

    end;

    theorem :: MATRIX15:36

    a <> ( 0. K) implies ( Solutions_of (A,B)) = ( Solutions_of ((a * A),(a * B)))

    proof

      assume

       A1: a <> ( 0. K);

      thus ( Solutions_of (A,B)) c= ( Solutions_of ((a * A),(a * B)))

      proof

        let x be object such that

         A2: x in ( Solutions_of (A,B));

        ex X st x = X & ( len X) = ( width A) & ( width X) = ( width B) & (A * X) = B by A2;

        hence thesis by A2, Th35;

      end;

      

       A3: ((a " ) * (a * A)) = (((a " ) * a) * A) by Th2

      .= (( 1_ K) * A) by A1, VECTSP_1:def 10

      .= A by Th2;

      

       A4: ((a " ) * (a * B)) = (((a " ) * a) * B) by Th2

      .= (( 1_ K) * B) by A1, VECTSP_1:def 10

      .= B by Th2;

      let x be object such that

       A5: x in ( Solutions_of ((a * A),(a * B)));

      ex X st x = X & ( len X) = ( width (a * A)) & ( width X) = ( width (a * B)) & ((a * A) * X) = (a * B) by A5;

      hence thesis by A5, A3, A4, Th35;

    end;

    

     Lm3: for D be non empty set holds for A,B be Matrix of D st ( len A) = ( len B) & ( width A) = 0 & ( width B) = 0 holds A = B

    proof

      let D be non empty set;

      let A,B be Matrix of D such that

       A1: ( len A) = ( len B) and

       A2: ( width A) = 0 and

       A3: ( width B) = 0 ;

      ( Seg ( width A)) = {} by A2;

      then ( Indices A) = {} by ZFMISC_1: 90;

      then for i, j st [i, j] in ( Indices A) holds (A * (i,j)) = (B * (i,j));

      hence thesis by A1, A2, A3, MATRIX_0: 21;

    end;

    theorem :: MATRIX15:37

    

     Th37: X1 in ( Solutions_of (A,B1)) & X2 in ( Solutions_of (A,B2)) & ( width B1) = ( width B2) implies (X1 + X2) in ( Solutions_of (A,(B1 + B2)))

    proof

      assume that

       A1: X1 in ( Solutions_of (A,B1)) and

       A2: X2 in ( Solutions_of (A,B2)) and

       A3: ( width B1) = ( width B2);

      

       A4: ex Y1 be Matrix of K st Y1 = X1 & ( len Y1) = ( width A) & ( width Y1) = ( width B1) & (A * Y1) = B1 by A1;

      

       A5: ( width (X1 + X2)) = ( width X1) by MATRIX_3:def 3;

      

       A6: ( len (X1 + X2)) = ( len X1) by MATRIX_3:def 3;

      

       A7: ex Y2 be Matrix of K st Y2 = X2 & ( len Y2) = ( width A) & ( width Y2) = ( width B2) & (A * Y2) = B2 by A2;

       A8:

      now

        per cases ;

          suppose

           A9: ( len A) = 0 ;

          then ( len (A * X1)) = 0 by A4, MATRIX_3:def 4;

          then

           A10: ( len ((A * X1) + (A * X2))) = 0 by MATRIX_3:def 3;

          ( len (A * (X1 + X2))) = 0 by A4, A6, A9, MATRIX_3:def 4;

          hence (A * (X1 + X2)) = ((A * X1) + (A * X2)) by A10;

        end;

          suppose ( len X1) = 0 ;

          then ( width (A * X1)) = 0 by A4, MATRIX_0:def 3;

          then

           A11: ( width ((A * X1) + (A * X2))) = 0 & ( width (A * (X1 + X2))) = 0 by A4, A6, A5, MATRIX_3:def 3, MATRIX_3:def 4;

          ( len (A * X1)) = ( len A) by A4, MATRIX_3:def 4;

          then

           A12: ( len ((A * X1) + (A * X2))) = ( len A) by MATRIX_3:def 3;

          ( len (A * (X1 + X2))) = ( len A) by A4, A6, MATRIX_3:def 4;

          hence (A * (X1 + X2)) = ((A * X1) + (A * X2)) by A12, A11, Lm3;

        end;

          suppose ( len A) > 0 & ( len X1) > 0 ;

          hence (A * (X1 + X2)) = ((A * X1) + (A * X2)) by A3, A4, A7, MATRIX_4: 62;

        end;

      end;

      ( width (B1 + B2)) = ( width B1) by MATRIX_3:def 3;

      hence thesis by A4, A7, A6, A5, A8;

    end;

    theorem :: MATRIX15:38

    

     Th38: X in ( Solutions_of (A9,B9)) implies X in ( Solutions_of (( RLine (A9,i,(a * ( Line (A9,i))))),( RLine (B9,i,(a * ( Line (B9,i)))))))

    proof

      set LA = ( Line (A9,i));

      set LB = ( Line (B9,i));

      set RA = ( RLine (A9,i,(a * LA)));

      set RB = ( RLine (B9,i,(a * LB)));

      

       A1: ( Indices RB) = ( Indices B9) by MATRIX_0: 26;

      

       A2: ( len (a * LB)) = ( len LB) & ( len LB) = ( width B9) by CARD_1:def 7, MATRIXR1: 16;

      then

       A3: ( width RB) = ( width B9) by MATRIX11:def 3;

      

       A4: ( len (a * LA)) = ( len LA) & ( len LA) = ( width A9) by CARD_1:def 7, MATRIXR1: 16;

      then

       A5: ( len RA) = ( len A9) by MATRIX11:def 3;

      assume

       A6: X in ( Solutions_of (A9,B9));

      then

      consider X1 be Matrix of K such that

       A7: X = X1 and

       A8: ( len X1) = ( width A9) and

       A9: ( width X1) = ( width B9) and

       A10: (A9 * X1) = B9;

      set RX = (RA * X1);

      

       A11: ( width RA) = ( width A9) by A4, MATRIX11:def 3;

      then

       A12: ( len RX) = ( len RA) & ( width RX) = ( width X1) by A8, MATRIX_3:def 4;

      

       A13: ( len A9) = ( len B9) by A6, Th33;

      then ( dom B9) = ( Seg ( len RA)) by A5, FINSEQ_1:def 3;

      then

       A14: ( Indices RX) = ( Indices B9) by A9, A12, FINSEQ_1:def 3;

       A15:

      now

        ( len B9) = m by MATRIX_0:def 2;

        then

         A16: ( dom B9) = ( Seg m) by FINSEQ_1:def 3;

        let j, k such that

         A17: [j, k] in ( Indices RB);

        

         A18: j in ( dom B9) by A1, A17, ZFMISC_1: 87;

        

         A19: k in ( Seg ( width B9)) by A1, A17, ZFMISC_1: 87;

        then (B9 * (i,k)) = (LB . k) by MATRIX_0:def 7;

        then

        reconsider LBk = (LB . k) as Element of K;

        

         A20: (B9 * (j,k)) = (( Line (A9,j)) "*" ( Col (X1,k))) by A8, A10, A1, A17, MATRIX_3:def 4;

        now

          per cases ;

            suppose

             A21: j = i;

            then ( Line (RA,i)) = (a * LA) by A4, A18, A16, MATRIX11: 28;

            

            hence (RX * (j,k)) = ((a * LA) "*" ( Col (X1,k))) by A8, A11, A14, A1, A17, A21, MATRIX_3:def 4

            .= ( Sum (a * ( mlt (LA,( Col (X1,k)))))) by A8, FVSUM_1: 68

            .= (a * ( Sum ( mlt (LA,( Col (X1,k)))))) by FVSUM_1: 73

            .= (a * LBk) by A19, A20, A21, MATRIX_0:def 7

            .= ((a * LB) . k) by A19, FVSUM_1: 51

            .= (RB * (j,k)) by A2, A1, A17, A21, MATRIX11:def 3;

          end;

            suppose

             A22: j <> i;

            then ( Line (RA,j)) = ( Line (A9,j)) by A18, A16, MATRIX11: 28;

            

            hence (RX * (j,k)) = (( Line (A9,j)) "*" ( Col (X1,k))) by A8, A11, A14, A1, A17, MATRIX_3:def 4

            .= (B9 * (j,k)) by A8, A10, A1, A17, MATRIX_3:def 4

            .= (RB * (j,k)) by A2, A1, A17, A22, MATRIX11:def 3;

          end;

        end;

        hence (RB * (j,k)) = (RX * (j,k));

      end;

      ( len RB) = ( len B9) by A2, MATRIX11:def 3;

      then RX = RB by A9, A13, A5, A3, A12, A15, MATRIX_0: 21;

      hence thesis by A7, A8, A9, A11, A3;

    end;

    

     Lm4: a <> ( 0. K) implies ( Solutions_of (A9,B9)) = ( Solutions_of (( RLine (A9,i,(a * ( Line (A9,i))))),( RLine (B9,i,(a * ( Line (B9,i)))))))

    proof

      assume

       A1: a <> ( 0. K);

      set RB = ( RLine (B9,i,(a * ( Line (B9,i)))));

      set RA = ( RLine (A9,i,(a * ( Line (A9,i)))));

      thus ( Solutions_of (A9,B9)) c= ( Solutions_of (RA,RB))

      proof

        let x be object such that

         A2: x in ( Solutions_of (A9,B9));

        ex X st x = X & ( len X) = ( width A9) & ( width X) = ( width B9) & (A9 * X) = B9 by A2;

        hence thesis by A2, Th38;

      end;

      let x be object such that

       A3: x in ( Solutions_of (RA,RB));

      per cases ;

        suppose

         A4: not i in ( Seg m);

        ( len A9) = m by MATRIX_0:def 2;

        then ( len B9) = m & RA = A9 by A4, MATRIX13: 40, MATRIX_0:def 2;

        hence thesis by A3, A4, MATRIX13: 40;

      end;

        suppose

         A5: i in ( Seg m);

        reconsider aLA = (a * ( Line (A9,i))), aLB = (a * ( Line (B9,i))), aLAR = ((a " ) * ( Line (RA,i))), aLBR = ((a " ) * ( Line (RB,i))) as Element of (the carrier of K * ) by FINSEQ_1:def 11;

        set RRB = ( RLine (RB,i,((a " ) * ( Line (RB,i)))));

        set RRA = ( RLine (RA,i,((a " ) * ( Line (RA,i)))));

        

         A6: ex X st x = X & ( len X) = ( width RA) & ( width X) = ( width RB) & (RA * X) = RB by A3;

        

         A7: ( len (a * ( Line (A9,i)))) = ( width A9) by CARD_1:def 7;

        

        then

         A8: ((a " ) * ( Line (RA,i))) = ((a " ) * (a * ( Line (A9,i)))) by A5, MATRIX11: 28

        .= (((a " ) * a) * ( Line (A9,i))) by FVSUM_1: 54

        .= (( 1_ K) * ( Line (A9,i))) by A1, VECTSP_1:def 10

        .= ( Line (A9,i)) by FVSUM_1: 57;

        

         A9: ( len (a * ( Line (B9,i)))) = ( width B9) by CARD_1:def 7;

        

        then

         A10: ((a " ) * ( Line (RB,i))) = ((a " ) * (a * ( Line (B9,i)))) by A5, MATRIX11: 28

        .= (((a " ) * a) * ( Line (B9,i))) by FVSUM_1: 54

        .= (( 1_ K) * ( Line (B9,i))) by A1, VECTSP_1:def 10

        .= ( Line (B9,i)) by FVSUM_1: 57;

        

         A11: ( width RB) = ( width B9) by A9, MATRIX11:def 3;

        

         A12: ( len ((a " ) * ( Line (RB,i)))) = ( width RB) by CARD_1:def 7;

        

        then

         A13: RRB = ( Replace (RB,i,aLBR)) by MATRIX11: 29

        .= ( Replace (( Replace (B9,i,aLB)),i,aLBR)) by A9, MATRIX11: 29

        .= ( Replace (B9,i,aLBR)) by FUNCT_7: 34

        .= ( RLine (B9,i,( Line (B9,i)))) by A12, A11, A10, MATRIX11: 29

        .= B9 by MATRIX11: 30;

        

         A14: ( width RA) = ( width A9) by A7, MATRIX11:def 3;

        

         A15: ( len ((a " ) * ( Line (RA,i)))) = ( width RA) by CARD_1:def 7;

        

        then RRA = ( Replace (RA,i,aLAR)) by MATRIX11: 29

        .= ( Replace (( Replace (A9,i,aLA)),i,aLAR)) by A7, MATRIX11: 29

        .= ( Replace (A9,i,aLAR)) by FUNCT_7: 34

        .= ( RLine (A9,i,( Line (A9,i)))) by A15, A14, A8, MATRIX11: 29

        .= A9 by MATRIX11: 30;

        hence thesis by A3, A6, A13, Th38;

      end;

    end;

    theorem :: MATRIX15:39

    

     Th39: X in ( Solutions_of (A9,B9)) & j in ( Seg m) implies X in ( Solutions_of (( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j)))))),( RLine (B9,i,(( Line (B9,i)) + (a * ( Line (B9,j))))))))

    proof

      assume that

       A1: X in ( Solutions_of (A9,B9)) and

       A2: j in ( Seg m);

      consider X1 such that

       A3: X = X1 and

       A4: ( len X1) = ( width A9) and

       A5: ( width X1) = ( width B9) and

       A6: (A9 * X1) = B9 by A1;

      set LAj = ( Line (A9,j));

      set LAi = ( Line (A9,i));

      set RA = ( RLine (A9,i,(LAi + (a * LAj))));

      

       A7: ( len (LAi + (a * LAj))) = ( width A9) by CARD_1:def 7;

      then

       A8: ( len RA) = ( len A9) by MATRIX11:def 3;

      set RX = (RA * X1);

      

       A9: ( width RA) = ( width A9) by A7, MATRIX11:def 3;

      then

       A10: ( len RX) = ( len RA) & ( width RX) = ( width X1) by A4, MATRIX_3:def 4;

      

       A11: ( len A9) = ( len B9) by A1, Th33;

      then ( dom B9) = ( Seg ( len RA)) by A8, FINSEQ_1:def 3;

      then

       A12: ( Indices RX) = ( Indices B9) by A5, A10, FINSEQ_1:def 3;

      set LBj = ( Line (B9,j));

      set LBi = ( Line (B9,i));

      set RB = ( RLine (B9,i,(LBi + (a * LBj))));

      

       A13: ( Indices RB) = ( Indices B9) by MATRIX_0: 26;

      

       A14: ( len (LBi + (a * LBj))) = ( width B9) by CARD_1:def 7;

      then

       A15: ( width RB) = ( width B9) by MATRIX11:def 3;

      

       A16: ( len (a * LAj)) = ( width A9) & ( len LAi) = ( width A9) by CARD_1:def 7;

       A17:

      now

        

         A18: ( rng (a * LBj)) c= the carrier of K by FINSEQ_1:def 4;

        let o,p be Nat such that

         A19: [o, p] in ( Indices RB);

        

         A20: o in ( dom B9) by A13, A19, ZFMISC_1: 87;

        

         A21: (B9 * (o,p)) = (( Line (A9,o)) "*" ( Col (X1,p))) by A4, A6, A13, A19, MATRIX_3:def 4;

        reconsider CX = ( Col (X1,p)) as Element of (( width A9) -tuples_on the carrier of K) by A4;

        

         A22: ( len ( Col (X1,p))) = ( width A9) by A4, MATRIX_0:def 8;

        

         A23: p in ( Seg ( width B9)) by A13, A19, ZFMISC_1: 87;

        then (B9 * (o,p)) = (( Line (B9,o)) . p) & (B9 * (j,p)) = (LBj . p) by MATRIX_0:def 7;

        then

        reconsider LBop = (( Line (B9,o)) . p), LBjp = (LBj . p) as Element of the carrier of K;

        p in ( dom (a * LBj)) by A23, FINSEQ_2: 124;

        then ((a * LBj) . p) in ( rng (a * LBj)) by FUNCT_1:def 3;

        then

        reconsider aLBjp = ((a * ( Line (B9,j))) . p) as Element of K by A18;

        ( len B9) = m by MATRIX_0:def 2;

        then

         A24: ( dom B9) = ( Seg m) by FINSEQ_1:def 3;

        then [j, p] in ( Indices B9) by A2, A23, ZFMISC_1: 87;

        then

         A25: (B9 * (j,p)) = (LAj "*" ( Col (X1,p))) by A4, A6, MATRIX_3:def 4;

        now

          per cases ;

            suppose

             A26: o = i;

            then ( Line (RA,o)) = (LAi + (a * LAj)) by A7, A20, A24, MATRIX11: 28;

            

            hence (RX * (o,p)) = ((LAi + (a * LAj)) "*" CX) by A4, A9, A12, A13, A19, MATRIX_3:def 4

            .= ( Sum (( mlt (LAi,CX)) + ( mlt ((a * LAj),CX)))) by A16, A22, MATRIX_4: 56

            .= ( Sum (( mlt (LAi,CX)) + (a * ( mlt (LAj,CX))))) by FVSUM_1: 68

            .= (( Sum ( mlt (LAi,CX))) + ( Sum (a * ( mlt (LAj,CX))))) by FVSUM_1: 76

            .= ((B9 * (o,p)) + (a * (B9 * (j,p)))) by A21, A25, A26, FVSUM_1: 73

            .= (LBop + (a * (B9 * (j,p)))) by A23, MATRIX_0:def 7

            .= (LBop + (a * LBjp)) by A23, MATRIX_0:def 7

            .= (LBop + aLBjp) by A23, FVSUM_1: 51

            .= ((LBi + (a * LBj)) . p) by A23, A26, FVSUM_1: 18

            .= (RB * (o,p)) by A14, A13, A19, A26, MATRIX11:def 3;

          end;

            suppose

             A27: o <> i;

            then ( Line (RA,o)) = ( Line (A9,o)) by A20, A24, MATRIX11: 28;

            

            hence (RX * (o,p)) = (( Line (A9,o)) "*" ( Col (X1,p))) by A4, A9, A12, A13, A19, MATRIX_3:def 4

            .= (B9 * (o,p)) by A4, A6, A13, A19, MATRIX_3:def 4

            .= (RB * (o,p)) by A14, A13, A19, A27, MATRIX11:def 3;

          end;

        end;

        hence (RB * (o,p)) = (RX * (o,p));

      end;

      ( len RB) = ( len B9) by A14, MATRIX11:def 3;

      then RX = RB by A5, A11, A8, A15, A10, A17, MATRIX_0: 21;

      hence thesis by A3, A4, A5, A9, A15;

    end;

    

     Lm5: j in ( Seg m) & i <> j implies ( Solutions_of (A9,B9)) = ( Solutions_of (( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j)))))),( RLine (B9,i,(( Line (B9,i)) + (a * ( Line (B9,j))))))))

    proof

      assume that

       A1: j in ( Seg m) and

       A2: i <> j;

      set LB = ( Line (B9,j));

      set LA = ( Line (A9,j));

      set RA = ( RLine (A9,i,(( Line (A9,i)) + (a * LA))));

      set RB = ( RLine (B9,i,(( Line (B9,i)) + (a * LB))));

      thus ( Solutions_of (A9,B9)) c= ( Solutions_of (RA,RB))

      proof

        let x be object such that

         A3: x in ( Solutions_of (A9,B9));

        ex X st x = X & ( len X) = ( width A9) & ( width X) = ( width B9) & (A9 * X) = B9 by A3;

        hence thesis by A1, A3, Th39;

      end;

      let x be object such that

       A4: x in ( Solutions_of (RA,RB));

      per cases ;

        suppose

         A5: not i in ( Seg m);

        ( len A9) = m by MATRIX_0:def 2;

        then ( len B9) = m & RA = A9 by A5, MATRIX13: 40, MATRIX_0:def 2;

        hence thesis by A4, A5, MATRIX13: 40;

      end;

        suppose

         A6: i in ( Seg m);

        reconsider LLA = (( Line (A9,i)) + (a * LA)), LLB = (( Line (B9,i)) + (a * LB)), LLRA = (( Line (RA,i)) + (( - a) * ( Line (RA,j)))), LLRB = (( Line (RB,i)) + (( - a) * ( Line (RB,j)))) as Element of (the carrier of K * ) by FINSEQ_1:def 11;

        set RRB = ( RLine (RB,i,(( Line (RB,i)) + (( - a) * ( Line (RB,j))))));

        set RRA = ( RLine (RA,i,(( Line (RA,i)) + (( - a) * ( Line (RA,j))))));

        

         A7: ex X st x = X & ( len X) = ( width RA) & ( width X) = ( width RB) & (RA * X) = RB by A4;

        

         A8: ( Line (RB,j)) = LB by A1, A2, MATRIX11: 28;

        

         A9: ( len (( Line (B9,i)) + (a * LB))) = ( width B9) by CARD_1:def 7;

        then

         A10: ( width RB) = ( width B9) by MATRIX11:def 3;

        ( Line (RB,i)) = (( Line (B9,i)) + (a * LB)) by A6, A9, MATRIX11: 28;

        

        then

         A11: (( Line (RB,i)) + (( - a) * ( Line (RB,j)))) = ((( Line (B9,i)) + (a * LB)) + (( - (( 1_ K) * a)) * LB)) by A8

        .= ((( Line (B9,i)) + (a * LB)) + ((( - ( 1_ K)) * a) * LB)) by VECTSP_1: 9

        .= ((( Line (B9,i)) + (a * LB)) + (( - ( 1_ K)) * (a * LB))) by FVSUM_1: 54

        .= ((( Line (B9,i)) + (a * LB)) + ( - (a * LB))) by FVSUM_1: 59

        .= (( Line (B9,i)) + ((a * LB) + ( - (a * LB)))) by FINSEQOP: 28

        .= (( Line (B9,i)) + (( width B9) |-> ( 0. K))) by FVSUM_1: 26

        .= ( Line (B9,i)) by FVSUM_1: 21;

        

         A12: ( len (( Line (RB,i)) + (( - a) * ( Line (RB,j))))) = ( width RB) by CARD_1:def 7;

        

        then

         A13: RRB = ( Replace (RB,i,LLRB)) by MATRIX11: 29

        .= ( Replace (( Replace (B9,i,LLB)),i,LLRB)) by A9, MATRIX11: 29

        .= ( Replace (B9,i,LLRB)) by FUNCT_7: 34

        .= ( RLine (B9,i,(( Line (RB,i)) + (( - a) * ( Line (RB,j)))))) by A12, A10, MATRIX11: 29

        .= B9 by A11, MATRIX11: 30;

        

         A14: ( Line (RA,j)) = LA by A1, A2, MATRIX11: 28;

        

         A15: ( len (( Line (A9,i)) + (a * LA))) = ( width A9) by CARD_1:def 7;

        then

         A16: ( width RA) = ( width A9) by MATRIX11:def 3;

        ( Line (RA,i)) = (( Line (A9,i)) + (a * LA)) by A6, A15, MATRIX11: 28;

        

        then

         A17: (( Line (RA,i)) + (( - a) * ( Line (RA,j)))) = ((( Line (A9,i)) + (a * LA)) + (( - (( 1_ K) * a)) * LA)) by A14

        .= ((( Line (A9,i)) + (a * LA)) + ((( - ( 1_ K)) * a) * LA)) by VECTSP_1: 9

        .= ((( Line (A9,i)) + (a * LA)) + (( - ( 1_ K)) * (a * LA))) by FVSUM_1: 54

        .= ((( Line (A9,i)) + (a * LA)) + ( - (a * LA))) by FVSUM_1: 59

        .= (( Line (A9,i)) + ((a * LA) + ( - (a * LA)))) by FINSEQOP: 28

        .= (( Line (A9,i)) + (( width A9) |-> ( 0. K))) by FVSUM_1: 26

        .= ( Line (A9,i)) by FVSUM_1: 21;

        

         A18: ( len (( Line (RA,i)) + (( - a) * ( Line (RA,j))))) = ( width RA) by CARD_1:def 7;

        

        then RRA = ( Replace (RA,i,LLRA)) by MATRIX11: 29

        .= ( Replace (( Replace (A9,i,LLA)),i,LLRA)) by A15, MATRIX11: 29

        .= ( Replace (A9,i,LLRA)) by FUNCT_7: 34

        .= ( RLine (A9,i,(( Line (RA,i)) + (( - a) * ( Line (RA,j)))))) by A18, A16, MATRIX11: 29

        .= A9 by A17, MATRIX11: 30;

        hence thesis by A1, A4, A7, A13, Th39;

      end;

    end;

    theorem :: MATRIX15:40

    

     Th40: j in ( Seg m) & (i = j implies a <> ( - ( 1_ K))) implies ( Solutions_of (A9,B9)) = ( Solutions_of (( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j)))))),( RLine (B9,i,(( Line (B9,i)) + (a * ( Line (B9,j))))))))

    proof

      assume that

       A1: j in ( Seg m) and

       A2: i = j implies a <> ( - ( 1_ K));

      per cases ;

        suppose i <> j;

        hence thesis by A1, Lm5;

      end;

        suppose

         A3: i = j;

        

         A4: (( 1_ K) + a) <> ( 0. K)

        proof

          assume (( 1_ K) + a) = ( 0. K);

          

          then ( - ( 1. K)) = (( - ( 1. K)) + (( 1_ K) + a)) by RLVECT_1:def 4

          .= ((( - ( 1. K)) + ( 1_ K)) + a) by RLVECT_1:def 3

          .= (( 0. K) + a) by VECTSP_1: 19

          .= a by RLVECT_1:def 4;

          hence thesis by A2, A3;

        end;

        set LB = ( Line (B9,i));

        set LA = ( Line (A9,i));

        

         A5: (LB + (a * LB)) = ((( 1_ K) * LB) + (a * LB)) by FVSUM_1: 57

        .= ((( 1_ K) + a) * LB) by FVSUM_1: 55;

        (LA + (a * LA)) = ((( 1_ K) * LA) + (a * LA)) by FVSUM_1: 57

        .= ((( 1_ K) + a) * LA) by FVSUM_1: 55;

        hence thesis by A3, A4, A5, Lm4;

      end;

    end;

    theorem :: MATRIX15:41

    

     Th41: X in ( Solutions_of (A,B)) & i in ( dom A) & ( Line (A,i)) = (( width A) |-> ( 0. K)) implies ( Line (B,i)) = (( width B) |-> ( 0. K))

    proof

      assume that

       A1: X in ( Solutions_of (A,B)) and

       A2: i in ( dom A) and

       A3: ( Line (A,i)) = (( width A) |-> ( 0. K));

      set wB0 = (( width B) |-> ( 0. K));

      set LB = ( Line (B,i));

      

       A4: ( len LB) = ( width B) by CARD_1:def 7;

      

       A5: ex X1 be Matrix of K st X = X1 & ( len X1) = ( width A) & ( width X1) = ( width B) & (A * X1) = B by A1;

       A6:

      now

        let k such that

         A7: 1 <= k & k <= ( len LB);

        

         A8: k in ( Seg ( width B)) by A4, A7;

        ( len A) = ( len B) by A1, Th33;

        then ( dom A) = ( Seg ( len B)) by FINSEQ_1:def 3;

        then i in ( dom B) by A2, FINSEQ_1:def 3;

        then [i, k] in ( Indices B) by A8, ZFMISC_1: 87;

        

        then (B * (i,k)) = (( Line (A,i)) "*" ( Col (X,k))) by A5, MATRIX_3:def 4

        .= ( Sum (( 0. K) * ( Col (X,k)))) by A3, A5, FVSUM_1: 66

        .= (( 0. K) * ( Sum ( Col (X,k)))) by FVSUM_1: 73

        .= ( 0. K)

        .= (wB0 . k) by A8, FINSEQ_2: 57;

        hence (wB0 . k) = (LB . k) by A8, MATRIX_0:def 7;

      end;

      ( len wB0) = ( width B) by CARD_1:def 7;

      hence thesis by A4, A6;

    end;

    

     Lm6: for nt be Element of (n -tuples_on NAT ) holds i in ( Seg n) implies ( Line (( Segm (A,nt,( Sgm ( Seg ( width A))))),i)) = ( Line (A,(nt . i)))

    proof

      let nt be Element of (n -tuples_on NAT );

      set S = ( Seg ( width A));

      

       A1: ( rng ( Sgm S)) = S by FINSEQ_1:def 13;

      ( len ( Line (A,(nt . i)))) = ( width A) by MATRIX_0:def 7;

      then

       A2: ( dom ( Line (A,(nt . i)))) = S by FINSEQ_1:def 3;

      ( Sgm S) = ( idseq ( width A)) by FINSEQ_3: 48;

      then

       A3: (( Line (A,(nt . i))) * ( Sgm S)) = ( Line (A,(nt . i))) by A2, RELAT_1: 52;

      assume i in ( Seg n);

      hence thesis by A3, A1, MATRIX13: 24;

    end;

    theorem :: MATRIX15:42

    

     Th42: for nt be Element of (n -tuples_on NAT ) st ( rng nt) c= ( dom A) & n > 0 holds ( Solutions_of (A,B)) c= ( Solutions_of (( Segm (A,nt,( Sgm ( Seg ( width A))))),( Segm (B,nt,( Sgm ( Seg ( width B)))))))

    proof

      let nt be Element of (n -tuples_on NAT ) such that

       A1: ( rng nt) c= ( dom A) and

       A2: n > 0 ;

      set SA = ( Segm (A,nt,( Sgm ( Seg ( width A)))));

      

       A3: ( len SA) = n by A2, MATRIX_0: 23;

      ( width SA) = ( card ( Seg ( width A))) by A2, MATRIX_0: 23;

      then

       A4: ( width SA) = ( width A) by FINSEQ_1: 57;

      set SB = ( Segm (B,nt,( Sgm ( Seg ( width B)))));

      

       A5: ( len SB) = n by A2, MATRIX_0: 23;

      ( width SB) = ( card ( Seg ( width B))) by A2, MATRIX_0: 23;

      then

       A6: ( width SB) = ( width B) by FINSEQ_1: 57;

      let x be object such that

       A7: x in ( Solutions_of (A,B));

      consider X be Matrix of K such that

       A8: x = X and

       A9: ( len X) = ( width A) and

       A10: ( width X) = ( width B) and

       A11: (A * X) = B by A7;

      set SX = (SA * X);

      

       A12: ( len A) = ( len B) by A7, Th33;

       A13:

      now

        

         A14: ( len SX) = ( len SA) by A9, A4, MATRIX_3:def 4;

        let j, k such that

         A15: [j, k] in ( Indices SX);

        j in ( dom SX) by A15, ZFMISC_1: 87;

        then

         A16: j in ( Seg n) by A3, A14, FINSEQ_1:def 3;

        ( width SX) = ( width X) by A9, A4, MATRIX_3:def 4;

        then

         A17: k in ( Seg ( width B)) by A10, A15, ZFMISC_1: 87;

        ( dom nt) = ( Seg n) by FINSEQ_2: 124;

        then (nt . j) in ( rng nt) by A16, FUNCT_1:def 3;

        then

         A18: (nt . j) in ( dom A) by A1;

        ( dom A) = ( Seg ( len B)) by A12, FINSEQ_1:def 3;

        then (nt . j) in ( dom B) by A18, FINSEQ_1:def 3;

        then

         A19: [(nt . j), k] in ( Indices B) by A17, ZFMISC_1: 87;

        reconsider j9 = j, k9 = k as Element of NAT by ORDINAL1:def 12;

        ( Sgm ( Seg ( width B))) = ( idseq ( width B)) by FINSEQ_3: 48;

        then

         A20: (( Sgm ( Seg ( width B))) . k9) = k by A17, FINSEQ_2: 49;

        j in ( dom SB) by A5, A16, FINSEQ_1:def 3;

        then

         A21: [j, k] in ( Indices SB) by A6, A17, ZFMISC_1: 87;

        ( Line (SA,j)) = ( Line (A,(nt . j))) by A16, Lm6;

        

        hence (SX * (j,k)) = (( Line (A,(nt . j))) "*" ( Col (X,k))) by A9, A4, A15, MATRIX_3:def 4

        .= (B * ((nt . j9),k)) by A9, A11, A19, MATRIX_3:def 4

        .= (SB * (j,k)) by A21, A20, MATRIX13:def 1;

      end;

      ( len SX) = ( len SA) & ( width SX) = ( width X) by A9, A4, MATRIX_3:def 4;

      then SX = SB by A10, A3, A5, A6, A13, MATRIX_0: 21;

      hence thesis by A8, A9, A10, A4, A6;

    end;

    theorem :: MATRIX15:43

    

     Th43: for nt be Element of (n -tuples_on NAT ) st ( rng nt) c= ( dom A) & ( dom A) = ( dom B) & n > 0 & for i st i in (( dom A) \ ( rng nt)) holds ( Line (A,i)) = (( width A) |-> ( 0. K)) & ( Line (B,i)) = (( width B) |-> ( 0. K)) holds ( Solutions_of (A,B)) = ( Solutions_of (( Segm (A,nt,( Sgm ( Seg ( width A))))),( Segm (B,nt,( Sgm ( Seg ( width B)))))))

    proof

      let nt be Element of (n -tuples_on NAT ) such that

       A1: ( rng nt) c= ( dom A) and

       A2: ( dom A) = ( dom B) and

       A3: n > 0 and

       A4: for i st i in (( dom A) \ ( rng nt)) holds ( Line (A,i)) = (( width A) |-> ( 0. K)) & ( Line (B,i)) = (( width B) |-> ( 0. K));

      set SB = ( Segm (B,nt,( Sgm ( Seg ( width B)))));

      set SA = ( Segm (A,nt,( Sgm ( Seg ( width A)))));

      

       A5: ( Solutions_of (SA,SB)) c= ( Solutions_of (A,B))

      proof

        

         A6: ( Seg ( len A)) = ( dom B) by A2, FINSEQ_1:def 3;

        

         A7: ( width SB) = ( card ( Seg ( width B))) by A3, MATRIX_0: 23;

        then

         A8: ( width SB) = ( width B) by FINSEQ_1: 57;

        let x be object;

        assume x in ( Solutions_of (SA,SB));

        then

        consider X be Matrix of K such that

         A9: x = X and

         A10: ( len X) = ( width SA) and

         A11: ( width X) = ( width SB) and

         A12: (SA * X) = SB;

        set AX = (A * X);

        ( width SA) = ( card ( Seg ( width A))) by A3, MATRIX_0: 23;

        then

         A13: ( width SA) = ( width A) by FINSEQ_1: 57;

        then

         A14: ( width AX) = ( width X) by A10, MATRIX_3:def 4;

        

         A15: ( len AX) = ( len A) by A10, A13, MATRIX_3:def 4;

         A16:

        now

          

           A17: ( dom AX) = ( Seg ( len A)) by A15, FINSEQ_1:def 3;

          let j, k such that

           A18: [j, k] in ( Indices AX);

          

           A19: k in ( Seg ( width AX)) by A18, ZFMISC_1: 87;

          reconsider j9 = j, k9 = k as Element of NAT by ORDINAL1:def 12;

          

           A20: j in ( dom AX) by A18, ZFMISC_1: 87;

          now

            per cases ;

              suppose

               A21: j9 in ( rng nt);

              

               A22: ( dom nt) = ( Seg n) by FINSEQ_2: 124;

              ( Sgm ( Seg ( width B))) = ( idseq ( width B)) by FINSEQ_3: 48;

              then

               A23: (( Sgm ( Seg ( width B))) . k9) = k by A11, A8, A14, A19, FINSEQ_2: 49;

              consider p be object such that

               A24: p in ( dom nt) and

               A25: (nt . p) = j9 by A21, FUNCT_1:def 3;

              reconsider p as Element of NAT by A24;

              ( Indices SB) = [:( Seg n), ( Seg ( card ( Seg ( width B)))):] by A3, MATRIX_0: 23;

              then

               A26: [p, k] in ( Indices SB) by A11, A7, A14, A19, A24, A22, ZFMISC_1: 87;

              ( Line (SA,p)) = ( Line (A,j9)) by A24, A25, A22, Lm6;

              

              hence (AX * (j,k)) = (( Line (SA,p)) "*" ( Col (X,k))) by A10, A13, A18, MATRIX_3:def 4

              .= (SB * (p,k9)) by A10, A12, A26, MATRIX_3:def 4

              .= (B * (j,k)) by A25, A26, A23, MATRIX13:def 1;

            end;

              suppose not j9 in ( rng nt);

              then

               A27: j9 in (( dom A) \ ( rng nt)) by A2, A6, A20, A17, XBOOLE_0:def 5;

              then

               A28: ( Line (B,j)) = (( width B) |-> ( 0. K)) by A4;

              ( Line (A,j)) = (( width A) |-> ( 0. K)) by A4, A27;

              

              hence (AX * (j,k)) = ((( width A) |-> ( 0. K)) "*" ( Col (X,k))) by A10, A13, A18, MATRIX_3:def 4

              .= ( Sum (( 0. K) * ( Col (X,k)))) by A10, A13, FVSUM_1: 66

              .= (( 0. K) * ( Sum ( Col (X,k)))) by FVSUM_1: 73

              .= ( 0. K)

              .= (( Line (B,j)) . k) by A11, A8, A14, A19, A28, FINSEQ_2: 57

              .= (B * (j,k)) by A11, A8, A14, A19, MATRIX_0:def 7;

            end;

          end;

          hence (AX * (j,k)) = (B * (j,k));

        end;

        ( len AX) = ( len B) by A15, A6, FINSEQ_1:def 3;

        then AX = B by A11, A7, A14, A16, FINSEQ_1: 57, MATRIX_0: 21;

        hence thesis by A9, A10, A11, A13, A8;

      end;

      ( Solutions_of (A,B)) c= ( Solutions_of (SA,SB)) by A1, A3, Th42;

      hence thesis by A5;

    end;

    theorem :: MATRIX15:44

    

     Th44: for N st N c= ( dom A) & N is non empty holds ( Solutions_of (A,B)) c= ( Solutions_of (( Segm (A,N,( Seg ( width A)))),( Segm (B,N,( Seg ( width B))))))

    proof

      let N such that

       A1: N c= ( dom A) and

       A2: N is non empty;

      ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3;

      then ( rng ( Sgm N)) = N by A1, FINSEQ_1:def 13;

      hence thesis by A1, A2, Th42;

    end;

    theorem :: MATRIX15:45

    

     Th45: for N st N c= ( dom A) & N is non empty & ( dom A) = ( dom B) & for i st i in (( dom A) \ N) holds ( Line (A,i)) = (( width A) |-> ( 0. K)) & ( Line (B,i)) = (( width B) |-> ( 0. K)) holds ( Solutions_of (A,B)) = ( Solutions_of (( Segm (A,N,( Seg ( width A)))),( Segm (B,N,( Seg ( width B))))))

    proof

      let N such that

       A1: N c= ( dom A) and

       A2: N is non empty & ( dom A) = ( dom B) & for i st i in (( dom A) \ N) holds ( Line (A,i)) = (( width A) |-> ( 0. K)) & ( Line (B,i)) = (( width B) |-> ( 0. K));

      ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3;

      then ( rng ( Sgm N)) = N by A1, FINSEQ_1:def 13;

      hence thesis by A1, A2, Th43;

    end;

    theorem :: MATRIX15:46

    

     Th46: i in ( dom A) & ( len A) > 1 implies ( Solutions_of (A,B)) c= ( Solutions_of (( DelLine (A,i)),( DelLine (B,i))))

    proof

      assume that

       A1: i in ( dom A) and

       A2: ( len A) > 1;

      reconsider l1 = (( len A) - 1) as Element of NAT by A2, NAT_1: 20;

      

       A3: l1 > (1 - 1) by A2, XREAL_1: 9;

      

       A4: ( Seg ( len A)) = ( dom A) by FINSEQ_1:def 3;

      ( card ( Seg ( len A))) = (l1 + 1) by FINSEQ_1: 57;

      then ( card (( Seg ( len A)) \ {i})) = l1 by A1, A4, STIRL2_1: 55;

      then

       A5: ( Solutions_of (A,B)) c= ( Solutions_of (( Segm (A,(( Seg ( len A)) \ {i}),( Seg ( width A)))),( Segm (B,(( Seg ( len A)) \ {i}),( Seg ( width B)))))) by A4, A3, Th44, CARD_1: 27, XBOOLE_1: 36;

      let x be object such that

       A6: x in ( Solutions_of (A,B));

      ( len A) = ( len B) by A6, Th33;

      then ( Segm (A,(( Seg ( len A)) \ {i}),( Seg ( width A)))) = ( Del (A,i)) & ( Segm (B,(( Seg ( len A)) \ {i}),( Seg ( width B)))) = ( Del (B,i)) by MATRIX13: 51;

      hence thesis by A5, A6;

    end;

    theorem :: MATRIX15:47

    for A, B, i st i in ( dom A) & ( len A) > 1 & ( Line (A,i)) = (( width A) |-> ( 0. K)) & i in ( dom B) & ( Line (B,i)) = (( width B) |-> ( 0. K)) holds ( Solutions_of (A,B)) = ( Solutions_of (( DelLine (A,i)),( DelLine (B,i))))

    proof

      let A, B, i such that

       A1: i in ( dom A) and

       A2: ( len A) > 1 and

       A3: ( Line (A,i)) = (( width A) |-> ( 0. K)) and

       A4: i in ( dom B) and

       A5: ( Line (B,i)) = (( width B) |-> ( 0. K));

      reconsider l1 = (( len A) - 1) as Element of NAT by A2, NAT_1: 20;

      

       A6: l1 > (1 - 1) by A2, XREAL_1: 9;

      thus ( Solutions_of (A,B)) c= ( Solutions_of (( DelLine (A,i)),( DelLine (B,i)))) by A1, A2, Th46;

      let x be object such that

       A7: x in ( Solutions_of (( DelLine (A,i)),( DelLine (B,i))));

      set S = ( Seg ( len A));

      

       A8: ( dom A) = S by FINSEQ_1:def 3;

       A9:

      now

        let j;

        assume j in (( dom A) \ (S \ {i}));

        then j in (( dom A) /\ {i}) by A8, XBOOLE_1: 48;

        then j in {i} by XBOOLE_0:def 4;

        hence ( Line (A,j)) = (( width A) |-> ( 0. K)) & ( Line (B,j)) = (( width B) |-> ( 0. K)) by A3, A5, TARSKI:def 1;

      end;

      ( card S) = (l1 + 1) by FINSEQ_1: 57;

      then

       A10: ( card (S \ {i})) = l1 by A1, A8, STIRL2_1: 55;

      (ex mA be Nat st ( len A) = (mA + 1) & ( len ( Del (A,i))) = mA) & ex mB be Nat st ( len B) = (mB + 1) & ( len ( Del (B,i))) = mB by A1, A4, FINSEQ_3: 104;

      then

       A11: ( len B) = ( len A) by A7, Th33;

      then ( dom A) = ( dom B) by A8, FINSEQ_1:def 3;

      

      then ( Solutions_of (A,B)) = ( Solutions_of (( Segm (A,(S \ {i}),( Seg ( width A)))),( Segm (B,(S \ {i}),( Seg ( width B)))))) by A8, A10, A6, A9, Th45, CARD_1: 27, XBOOLE_1: 36

      .= ( Solutions_of (( DelLine (A,i)),( Segm (B,(S \ {i}),( Seg ( width B)))))) by MATRIX13: 51

      .= ( Solutions_of (( DelLine (A,i)),( DelLine (B,i)))) by A11, MATRIX13: 51;

      hence thesis by A7;

    end;

    theorem :: MATRIX15:48

    for A be Matrix of n, m, K, B be Matrix of n, k, K holds for P be Function of ( Seg n), ( Seg n) holds ( Solutions_of (A,B)) c= ( Solutions_of ((A * P),(B * P))) & (P is one-to-one implies ( Solutions_of (A,B)) = ( Solutions_of ((A * P),(B * P))))

    proof

      set IDn = ( idseq n);

      ( len IDn) = n & IDn is FinSequence of NAT by CARD_1:def 7, FINSEQ_2: 48;

      then

      reconsider IDn as Element of (n -tuples_on NAT ) by FINSEQ_2: 92;

      let A be Matrix of n, m, K, B be Matrix of n, k, K;

      let P be Function of ( Seg n), ( Seg n);

      

       A1: ( rng P) c= ( Seg n) by RELAT_1:def 19;

      ( dom IDn) = ( Seg n);

      then

      reconsider IDnP = (IDn * P) as FinSequence of NAT by FINSEQ_2: 47;

      ( dom P) = ( Seg n) by FUNCT_2: 52;

      then n in NAT & ( dom IDnP) = ( Seg n) by A1, ORDINAL1:def 12, RELAT_1: 53;

      then ( len IDnP) = n by FINSEQ_1:def 3;

      then

      reconsider IDnP as Element of (n -tuples_on NAT ) by FINSEQ_2: 92;

      

       A2: n = ( len A) by MATRIX_0:def 2;

      

       A3: (( idseq n) * P) = P by A1, RELAT_1: 53;

      then

       A4: ( rng IDnP) c= ( dom A) by A1, A2, FINSEQ_1:def 3;

      

       A5: IDn = ( Sgm ( Seg n)) & ( card ( Seg n)) = n by FINSEQ_1: 57, FINSEQ_3: 48;

      

      then

       A6: ( Segm (A,IDnP,( Sgm ( Seg ( width A))))) = (( Segm (A,( Seg ( len A)),( Seg ( width A)))) * P) by A2, MATRIX13: 33

      .= (A * P) by MATRIX13: 46;

      

       A7: ( len B) = n by MATRIX_0:def 2;

      

      then

       A8: ( Segm (B,IDnP,( Sgm ( Seg ( width B))))) = (( Segm (B,( Seg ( len B)),( Seg ( width B)))) * P) by A5, MATRIX13: 33

      .= (B * P) by MATRIX13: 46;

      per cases ;

        suppose

         A9: n > 0 ;

        hence ( Solutions_of (A,B)) c= ( Solutions_of ((A * P),(B * P))) by A6, A8, A4, Th42;

        

         A10: ( card ( Seg n)) = ( card ( Seg n));

        

         A11: ( dom A) = ( Seg n) by A2, FINSEQ_1:def 3;

        

         A12: ( dom B) = ( Seg n) by A7, FINSEQ_1:def 3;

        assume P is one-to-one;

        then P is onto by A10, FINSEQ_4: 63;

        then ( rng P) = ( Seg n) by FUNCT_2:def 3;

        then for i st i in (( dom A) \ ( rng IDnP)) holds ( Line (A,i)) = (( width A) |-> ( 0. K)) & ( Line (B,i)) = (( width B) |-> ( 0. K)) by A3, A11, XBOOLE_1: 37;

        hence thesis by A1, A3, A6, A8, A9, A11, A12, Th43;

      end;

        suppose

         A13: n = 0 ;

        then ( len B) = 0 by MATRIX_0: 22;

        then

         A14: B = {} ;

        ( len A) = 0 by A13, MATRIX_0: 22;

        then

         A15: A = {} ;

        (A * P) = {} by A13;

        hence thesis by A15, A14;

      end;

    end;

    theorem :: MATRIX15:49

    

     Th49: for A be Matrix of n, m, K, N st ( card N) = n & N c= ( Seg m) & ( Segm (A,( Seg n),N)) = ( 1. (K,n)) & n > 0 holds ex MVectors be Matrix of (m -' n), m, K st ( Segm (MVectors,( Seg (m -' n)),(( Seg m) \ N))) = ( 1. (K,(m -' n))) & ( Segm (MVectors,( Seg (m -' n)),N)) = ( - (( Segm (A,( Seg n),(( Seg m) \ N))) @ )) & for l holds for M be Matrix of m, l, K st for i st i in ( Seg l) holds (ex j st j in ( Seg (m -' n)) & ( Col (M,i)) = ( Line (MVectors,j))) or ( Col (M,i)) = (m |-> ( 0. K)) holds M in ( Solutions_of (A,( 0. (K,n,l))))

    proof

      let A be Matrix of n, m, K, N such that

       A1: ( card N) = n and

       A2: N c= ( Seg m) and

       A3: ( Segm (A,( Seg n),N)) = ( 1. (K,n)) and

       A4: n > 0 ;

      set SN = (( Seg m) \ N);

      

       A5: (m -' n) = 0 or (m -' n) > 0 ;

      

       A6: ( card ( Seg m)) = m by FINSEQ_1: 57;

      then

       A7: ( card SN) = (m - n) by A1, A2, CARD_2: 44;

      set ZERO = ( 0. (K,(m -' n),m));

      

       A8: SN c= ( Seg m) by XBOOLE_1: 36;

       A9:

      now

        per cases ;

          suppose (m -' n) = 0 ;

          then ( Seg (m -' n)) = {} ;

          then [:( Seg (m -' n)), N:] = {} & [:( Seg (m -' n)), SN:] = {} by ZFMISC_1: 90;

          hence [:( Seg (m -' n)), N:] c= ( Indices ZERO) & [:( Seg (m -' n)), SN:] c= ( Indices ZERO);

        end;

          suppose (m -' n) > 0 ;

          then ( Indices ZERO) = [:( Seg (m -' n)), ( Seg m):] by MATRIX_0: 23;

          hence [:( Seg (m -' n)), N:] c= ( Indices ZERO) & [:( Seg (m -' n)), SN:] c= ( Indices ZERO) by A2, A8, ZFMISC_1: 96;

        end;

      end;

      set SA = ( Segm (A,( Seg n),SN));

      ( card ( Seg n)) = n by FINSEQ_1: 57;

      then

       A10: ( len SA) = n by A4, MATRIX_0: 23;

      

       A11: ( len (SA @ )) = ( len ( - (SA @ ))) & ( width (SA @ )) = ( width ( - (SA @ ))) by MATRIX_3:def 2;

      

       A12: ( width A) = m by A4, MATRIX_0: 23;

      ( Segm n) c= ( Segm ( card ( Seg m))) by A1, A2, CARD_1: 11;

      then

       A13: n <= m by A6, NAT_1: 39;

      then

       A14: (m -' n) = (m - n) by XREAL_1: 233;

      then ( width SA) = (m -' n) by A4, A7, MATRIX_0: 23;

      then ( len (SA @ )) = 0 & (m -' n) = 0 or ( len (SA @ )) = (m -' n) & ( width (SA @ )) = n by A10, A5, MATRIX_0: 54, MATRIX_0:def 6;

      then ( - (SA @ )) = {} & (m -' n) = 0 or ( - (SA @ )) is Matrix of (m -' n), n, K by A11, MATRIX_0: 51;

      then

      reconsider SAT = ( - (SA @ )) as Matrix of (m -' n), n, K by MATRIX_0: 13;

      set ONE = ( 1. (K,(m -' n)));

      

       A15: N misses SN by XBOOLE_1: 79;

      ( [:( Seg (m -' n)), N:] /\ [:( Seg (m -' n)), SN:]) = [:( Seg (m -' n)), (N /\ SN):] by ZFMISC_1: 99

      .= [:( Seg (m -' n)), {} :] by A15

      .= {} by ZFMISC_1: 90;

      then ( card ( Seg (m -' n))) = (m -' n) & for i,j,bi,bj,ci,cj be Nat st [i, j] in ( [:( Seg (m -' n)), N:] /\ [:( Seg (m -' n)), SN:]) & bi = ((( Sgm ( Seg (m -' n))) " ) . i) & bj = ((( Sgm N) " ) . j) & ci = ((( Sgm ( Seg (m -' n))) " ) . i) & cj = ((( Sgm SN) " ) . j) holds (SAT * (bi,bj)) = (ONE * (ci,cj)) by FINSEQ_1: 57;

      then

      consider V be Matrix of ( len ZERO), ( width ZERO), K such that

       A16: ( Segm (V,( Seg (m -' n)),N)) = SAT and

       A17: ( Segm (V,( Seg (m -' n)),SN)) = ONE and for i, j st [i, j] in (( Indices V) \ ( [:( Seg (m -' n)), N:] \/ [:( Seg (m -' n)), SN:])) holds (V * (i,j)) = (ZERO * (i,j)) by A1, A9, A14, A7, Th9;

      (m -' n) = 0 or (m -' n) > 0 ;

      then ( len ZERO) = 0 & (m -' n) = 0 & ( len V) = ( len ZERO) or ( len ZERO) = (m -' n) & ( width ZERO) = m by MATRIX_0: 23, MATRIX_0:def 2;

      then V = {} & (m -' n) = 0 or V is Matrix of (m -' n), m, K;

      then

      reconsider V as Matrix of (m -' n), m, K;

      take V;

      thus ( Segm (V,( Seg (m -' n)),SN)) = ONE & ( Segm (V,( Seg (m -' n)),N)) = ( - (SA @ )) by A16, A17;

      let l;

      let M be Matrix of m, l, K such that

       A18: for i st i in ( Seg l) holds (ex j st j in ( Seg (m -' n)) & ( Col (M,i)) = ( Line (V,j))) or ( Col (M,i)) = (m |-> ( 0. K));

      set Z = ( 0. (K,n,l));

      

       A19: ( len M) = m by A4, A13, MATRIX_0: 23;

      

       A20: ( width M) = l by A4, A13, MATRIX_0: 23;

      then

       A21: ( width (A * M)) = l by A12, A19, MATRIX_3:def 4;

      ( len A) = n by A4, MATRIX_0: 23;

      then ( len (A * M)) = n by A12, A19, MATRIX_3:def 4;

      then

      reconsider AM = (A * M) as Matrix of n, l, K by A21, MATRIX_0: 51;

      

       A22: ( Indices A) = [:( Seg n), ( Seg m):] by A4, MATRIX_0: 23;

      then

       A23: [:( Seg n), N:] c= ( Indices A) by A2, ZFMISC_1: 96;

      now

        

         A24: ( Indices AM) = ( Indices Z) by MATRIX_0: 26;

        let i, j such that

         A25: [i, j] in ( Indices AM);

        reconsider I = i, J = j as Element of NAT by ORDINAL1:def 12;

        

         A26: ( Indices AM) = [:( Seg n), ( Seg l):] by A4, MATRIX_0: 23;

        then

         A27: I in ( Seg n) by A25, ZFMISC_1: 87;

        

         A28: J in ( Seg l) by A25, A26, ZFMISC_1: 87;

        now

          per cases by A18, A28;

            suppose ex jj be Nat st jj in ( Seg (m -' n)) & ( Col (M,J)) = ( Line (V,jj));

            then

            consider jj be Nat such that

             A29: jj in ( Seg (m -' n)) and

             A30: ( Col (M,J)) = ( Line (V,jj));

            

             A31: jj = (( idseq (m -' n)) . jj) by A29, FINSEQ_2: 49

            .= (( Sgm ( Seg (m -' n))) . jj) by FINSEQ_3: 48;

            

             A32: ( Indices ONE) = [:( Seg (m -' n)), ( Seg (m -' n)):] by MATRIX_0: 24;

            then

             A33: [jj, jj] in ( Indices ONE) by A29, ZFMISC_1: 87;

            

             A34: ( rng ( Sgm SN)) = SN by A8, FINSEQ_1:def 13;

            

             A35: ( dom ( Sgm SN)) = ( Seg (m -' n)) by A14, A7, FINSEQ_3: 40, XBOOLE_1: 36;

            then

             A36: (( Sgm SN) . jj) in SN by A29, A34, FUNCT_1:def 3;

            then

             A37: (( Line (A,I)) . (( Sgm SN) . jj)) = (A * (I,(( Sgm SN) . jj))) by A12, A8, MATRIX_0:def 7;

            

             A38: (m -' n) <> 0 by A29;

            then

             A39: ( width V) = m by MATRIX_0: 23;

            

            then

             A40: (( Line (V,jj)) . (( Sgm SN) . jj)) = (V * (jj,(( Sgm SN) . jj))) by A8, A36, MATRIX_0:def 7

            .= (ONE * (jj,jj)) by A17, A31, A33, MATRIX13:def 1

            .= ( 1_ K) by A33, MATRIX_1:def 3;

            

             A41: ( len ( Line (A,I))) = m by A12, MATRIX_0:def 7;

            

             A42: I = (( idseq n) . I) by A27, FINSEQ_2: 49

            .= (( Sgm ( Seg n)) . I) by FINSEQ_3: 48;

            ( len ( Line (V,jj))) = m by A39, MATRIX_0:def 7;

            then ( len ( mlt (( Line (A,I)),( Line (V,jj))))) = m by A41, MATRIX_3: 6;

            then

             A43: ( dom ( mlt (( Line (A,I)),( Line (V,jj))))) = ( Seg m) by FINSEQ_1:def 3;

            

            then

             A44: (( mlt (( Line (A,I)),( Line (V,jj)))) /. (( Sgm SN) . jj)) = (( mlt (( Line (A,I)),( Line (V,jj)))) . (( Sgm SN) . jj)) by A8, A36, PARTFUN1:def 6

            .= ((A * (I,(( Sgm SN) . jj))) * ( 1_ K)) by A12, A8, A39, A36, A37, A40, FVSUM_1: 61

            .= (A * (I,(( Sgm SN) . jj)));

            

             A45: ( Indices V) = ( Indices ZERO) & ( rng ( Sgm ( Seg (m -' n)))) = ( Seg (m -' n)) by FINSEQ_1:def 13, MATRIX_0: 26;

            

             A46: ( rng ( Sgm N)) = N by A2, FINSEQ_1:def 13;

            

             A47: ( rng ( Sgm ( Seg n))) = ( Seg n) by FINSEQ_1:def 13;

             A48:

            now

              let kk be Nat such that

               A49: kk in ( Seg m) and

               A50: kk <> (( Sgm SN) . jj) and

               A51: kk <> (( Sgm N) . I);

              now

                per cases by A49, XBOOLE_0:def 5;

                  suppose kk in N;

                  then

                  consider x be object such that

                   A52: x in ( dom ( Sgm N)) and

                   A53: (( Sgm N) . x) = kk by A46, FUNCT_1:def 3;

                  reconsider x as Element of NAT by A52;

                  

                   A54: (( Line (V,jj)) . (( Sgm N) . x)) = (V * (jj,(( Sgm N) . x))) by A39, A49, A53, MATRIX_0:def 7;

                   [(( Sgm ( Seg n)) . I), (( Sgm N) . x)] in ( Indices A) by A22, A27, A42, A49, A53, ZFMISC_1: 87;

                  then

                   A55: [I, x] in ( Indices ( Segm (A,( Seg n),N))) by A23, A46, A47, MATRIX13: 17;

                  (( Line (A,I)) . (( Sgm N) . x)) = (A * (I,(( Sgm N) . x))) by A12, A49, A53, MATRIX_0:def 7

                  .= (( Segm (A,( Seg n),N)) * (I,x)) by A42, A55, MATRIX13:def 1

                  .= ( 0. K) by A3, A51, A53, A55, MATRIX_1:def 3;

                  

                  hence (( mlt (( Line (A,I)),( Line (V,jj)))) . kk) = (( 0. K) * (V * (jj,(( Sgm N) . x)))) by A12, A39, A49, A53, A54, FVSUM_1: 61

                  .= ( 0. K);

                end;

                  suppose kk in SN;

                  then

                  consider x be object such that

                   A56: x in ( dom ( Sgm SN)) and

                   A57: (( Sgm SN) . x) = kk by A34, FUNCT_1:def 3;

                  reconsider x as Element of NAT by A56;

                  

                   A58: (( Line (A,I)) . (( Sgm SN) . x)) = (A * (I,(( Sgm SN) . x))) by A12, A49, A57, MATRIX_0:def 7;

                  

                   A59: [jj, x] in ( Indices ONE) by A29, A35, A32, A56, ZFMISC_1: 87;

                  (( Line (V,jj)) . (( Sgm SN) . x)) = (V * (jj,(( Sgm SN) . x))) by A39, A49, A57, MATRIX_0:def 7

                  .= (ONE * (jj,x)) by A17, A31, A59, MATRIX13:def 1

                  .= ( 0. K) by A50, A57, A59, MATRIX_1:def 3;

                  

                  hence (( mlt (( Line (A,I)),( Line (V,jj)))) . kk) = ((A * (I,(( Sgm SN) . x))) * ( 0. K)) by A12, A39, A49, A57, A58, FVSUM_1: 61

                  .= ( 0. K);

                end;

              end;

              hence (( mlt (( Line (A,I)),( Line (V,jj)))) . kk) = ( 0. K);

            end;

            ( dom ( Sgm N)) = ( Seg n) by A1, A2, FINSEQ_3: 40;

            then

             A60: (( Sgm N) . I) in N by A27, A46, FUNCT_1:def 3;

            then

             A61: (( Sgm SN) . jj) <> (( Sgm N) . I) by A15, A36, XBOOLE_0: 3;

             [(( Sgm ( Seg n)) . I), (( Sgm N) . I)] in ( Indices A) by A2, A22, A27, A60, A42, ZFMISC_1: 87;

            then

             A62: [I, I] in ( Indices ( Segm (A,( Seg n),N))) by A23, A46, A47, MATRIX13: 17;

            ( Indices V) = [:( Seg (m -' n)), ( Seg m):] by A38, MATRIX_0: 23;

            then [(( Sgm ( Seg (m -' n))) . jj), (( Sgm N) . I)] in ( Indices V) by A2, A29, A60, A31, ZFMISC_1: 87;

            then

             A63: [jj, I] in ( Indices ( Segm (V,( Seg (m -' n)),N))) by A9, A46, A45, MATRIX13: 17;

            

             A64: ( Indices SAT) = ( Indices (SA @ )) by Lm1;

            then

             A65: [I, jj] in ( Indices SA) by A16, A63, MATRIX_0:def 6;

            

             A66: (( Line (V,jj)) . (( Sgm N) . I)) = (V * (jj,(( Sgm N) . I))) by A2, A39, A60, MATRIX_0:def 7

            .= (( Segm (V,( Seg (m -' n)),N)) * (jj,I)) by A31, A63, MATRIX13:def 1

            .= ( - ((SA @ ) * (jj,I))) by A16, A63, A64, MATRIX_3:def 2

            .= ( - (SA * (I,jj))) by A65, MATRIX_0:def 6

            .= ( - (A * (I,(( Sgm SN) . jj)))) by A42, A65, MATRIX13:def 1;

            

             A67: (( Line (A,I)) . (( Sgm N) . I)) = (A * (I,(( Sgm N) . I))) by A2, A12, A60, MATRIX_0:def 7

            .= (( Segm (A,( Seg n),N)) * (I,I)) by A42, A62, MATRIX13:def 1

            .= ( 1_ K) by A3, A62, MATRIX_1:def 3;

            (( mlt (( Line (A,I)),( Line (V,jj)))) /. (( Sgm N) . I)) = (( mlt (( Line (A,I)),( Line (V,jj)))) . (( Sgm N) . I)) by A2, A43, A60, PARTFUN1:def 6

            .= (( 1_ K) * ( - (A * (I,(( Sgm SN) . jj))))) by A2, A12, A39, A60, A67, A66, FVSUM_1: 61

            .= ( - (A * (I,(( Sgm SN) . jj))));

            

            then ( Sum ( mlt (( Line (A,I)),( Line (V,jj))))) = ((A * (I,(( Sgm SN) . jj))) + ( - (A * (I,(( Sgm SN) . jj))))) by A2, A8, A43, A60, A36, A44, A61, A48, Th7

            .= ( 0. K) by VECTSP_1: 16;

            

            hence (Z * (i,j)) = (( Line (A,I)) "*" ( Line (V,jj))) by A25, A24, MATRIX_3: 1

            .= (AM * (i,j)) by A12, A19, A25, A30, MATRIX_3:def 4;

          end;

            suppose ( Col (M,J)) = (m |-> ( 0. K));

            

            hence (AM * (i,j)) = (( Line (A,I)) "*" (m |-> ( 0. K))) by A12, A19, A25, MATRIX_3:def 4

            .= ( Sum (( 0. K) * ( Line (A,I)))) by A12, FVSUM_1: 66

            .= (( 0. K) * ( Sum ( Line (A,I)))) by FVSUM_1: 73

            .= ( 0. K)

            .= (Z * (i,j)) by A25, A24, MATRIX_3: 1;

          end;

        end;

        hence (AM * (i,j)) = (Z * (i,j));

      end;

      then AM = Z by MATRIX_0: 27;

      hence thesis by A12, A19, A20, A21;

    end;

    theorem :: MATRIX15:50

    

     Th50: for A be Matrix of n, m, K, B be Matrix of n, l, K, N st ( card N) = n & N c= ( Seg m) & n > 0 & ( Segm (A,( Seg n),N)) = ( 1. (K,n)) holds ex X be Matrix of m, l, K st ( Segm (X,(( Seg m) \ N),( Seg l))) = ( 0. (K,(m -' n),l)) & ( Segm (X,N,( Seg l))) = B & X in ( Solutions_of (A,B))

    proof

      let A be Matrix of n, m, K, B be Matrix of n, l, K, N such that

       A1: ( card N) = n and

       A2: N c= ( Seg m) and

       A3: n > 0 and

       A4: ( Segm (A,( Seg n),N)) = ( 1. (K,n));

      

       A5: ( width A) = m by A3, MATRIX_0: 23;

      set Z = ( 0. (K,m,l));

      set SN = (( Seg m) \ N);

      

       A6: ( card ( Seg m)) = m by FINSEQ_1: 57;

      then

       A7: (m -' n) = (m - n) & ( card SN) = (m - n) by A1, A2, CARD_2: 44, NAT_1: 43, XREAL_1: 233;

      set ZERO = ( 0. (K,(m -' n),l));

      

       A8: N misses SN by XBOOLE_1: 79;

      ( [:N, ( Seg l):] /\ [:SN, ( Seg l):]) = [:(N /\ SN), ( Seg l):] by ZFMISC_1: 99

      .= [: {} , ( Seg l):] by A8

      .= {} by ZFMISC_1: 90;

      then

       A9: for i,j,bi,bj,ci,cj be Nat st [i, j] in ( [:N, ( Seg l):] /\ [:SN, ( Seg l):]) & bi = ((( Sgm N) " ) . i) & bj = ((( Sgm ( Seg l)) " ) . j) & ci = ((( Sgm SN) " ) . i) & cj = ((( Sgm ( Seg l)) " ) . j) holds (B * (bi,bj)) = (ZERO * (ci,cj));

      

       A10: ( Indices A) = [:( Seg n), ( Seg m):] by A3, MATRIX_0: 23;

      

       A11: n <= ( card ( Seg m)) by A1, A2, NAT_1: 43;

      then

       A12: ( len Z) = m & ( width Z) = l by A3, A6, MATRIX_0: 23;

      

       A13: ( Indices Z) = [:( Seg m), ( Seg l):] by A3, A11, A6, MATRIX_0: 23;

      then

       A14: [:N, ( Seg l):] c= ( Indices Z) by A2, ZFMISC_1: 95;

      

       A15: SN c= ( Seg m) by XBOOLE_1: 36;

      then ( card ( Seg l)) = l & [:SN, ( Seg l):] c= ( Indices Z) by A13, FINSEQ_1: 57, ZFMISC_1: 95;

      then

      consider X be Matrix of m, l, K such that

       A16: ( Segm (X,N,( Seg l))) = B and

       A17: ( Segm (X,SN,( Seg l))) = ZERO and for i, j st [i, j] in (( Indices X) \ ( [:N, ( Seg l):] \/ [:SN, ( Seg l):])) holds (X * (i,j)) = (Z * (i,j)) by A1, A7, A12, A14, A9, Th9;

      set AX = (A * X);

      

       A18: ( len X) = m by A3, A11, A6, MATRIX_0: 23;

      then

       A19: ( dom X) = ( Seg m) by FINSEQ_1:def 3;

      ( len A) = n by A3, MATRIX_0: 23;

      then

       A20: ( len AX) = n by A5, A18, MATRIX_3:def 4;

      take X;

      thus ( Segm (X,SN,( Seg l))) = ZERO & ( Segm (X,N,( Seg l))) = B by A16, A17;

      

       A21: ( Indices X) = [:( Seg m), ( Seg l):] by A3, A11, A6, MATRIX_0: 23;

      

       A22: ( width B) = l by A3, MATRIX_0: 23;

      

       A23: ( width X) = l by A3, A11, A6, MATRIX_0: 23;

      then ( width AX) = l by A5, A18, MATRIX_3:def 4;

      then

      reconsider AX as Matrix of n, l, K by A20, MATRIX_0: 51;

      

       A24: ( Indices B) = [:( Seg n), ( Seg l):] by A3, MATRIX_0: 23;

      now

        

         A25: [:N, ( Seg l):] c= ( Indices X) by A2, A21, ZFMISC_1: 95;

        let i, j such that

         A26: [i, j] in ( Indices AX);

        reconsider I = i, J = j as Element of NAT by ORDINAL1:def 12;

        

         A27: ( Indices AX) = ( Indices B) by MATRIX_0: 26;

        then

         A28: i in ( Seg n) by A24, A26, ZFMISC_1: 87;

        ( len ( Line (A,i))) = m & ( len ( Col (X,j))) = m by A5, A18, CARD_1:def 7;

        then ( len ( mlt (( Line (A,i)),( Col (X,j))))) = m by MATRIX_3: 6;

        then

         A29: ( dom ( mlt (( Line (A,i)),( Col (X,j))))) = ( Seg m) by FINSEQ_1:def 3;

        

         A30: ( rng ( Sgm ( Seg l))) = ( Seg l) by FINSEQ_1:def 13;

        

         A31: ( rng ( Sgm ( Seg n))) = ( Seg n) & [:( Seg n), N:] c= ( Indices A) by A2, A10, FINSEQ_1:def 13, ZFMISC_1: 95;

        

         A32: ( rng ( Sgm N)) = N by A2, FINSEQ_1:def 13;

        ( dom ( Sgm N)) = ( Seg n) by A1, A2, FINSEQ_3: 40;

        then

         A33: (( Sgm N) . i) in N by A28, A32, FUNCT_1:def 3;

        

         A34: j in ( Seg l) by A22, A26, A27, ZFMISC_1: 87;

        

        then

         A35: j = (( idseq l) . j) by FINSEQ_2: 49

        .= (( Sgm ( Seg l)) . j) by FINSEQ_3: 48;

        then [(( Sgm N) . I), (( Sgm ( Seg l)) . J)] in ( Indices X) by A2, A21, A34, A33, ZFMISC_1: 87;

        then

         A36: [I, J] in ( Indices B) by A16, A32, A30, A25, MATRIX13: 17;

        

         A37: ( rng ( Sgm SN)) = SN by A15, FINSEQ_1:def 13;

        

         A38: i = (( idseq n) . i) by A28, FINSEQ_2: 49

        .= (( Sgm ( Seg n)) . i) by FINSEQ_3: 48;

        then [(( Sgm ( Seg n)) . i), (( Sgm N) . i)] in ( Indices A) by A2, A10, A28, A33, ZFMISC_1: 87;

        then

         A39: [I, I] in ( Indices ( 1. (K,n))) by A4, A32, A31, MATRIX13: 17;

        

         A40: [:SN, ( Seg l):] c= ( Indices X) by A15, A21, ZFMISC_1: 95;

         A41:

        now

          let kk be Nat such that

           A42: kk in ( Seg m) and

           A43: kk <> (( Sgm N) . I);

          per cases by A42, XBOOLE_0:def 5;

            suppose

             A44: kk in N;

            then

            consider x be object such that

             A45: x in ( dom ( Sgm N)) and

             A46: (( Sgm N) . x) = kk by A32, FUNCT_1:def 3;

            reconsider x as Element of NAT by A45;

             [(( Sgm ( Seg n)) . i), (( Sgm N) . x)] in ( Indices A) by A2, A10, A28, A38, A44, A46, ZFMISC_1: 87;

            then

             A47: [I, x] in ( Indices ( 1. (K,n))) by A4, A32, A31, MATRIX13: 17;

            

             A48: (( Col (X,j)) . kk) = (X * (kk,j)) by A2, A19, A44, MATRIX_0:def 8;

            (( Line (A,i)) . (( Sgm N) . x)) = (A * (I,(( Sgm N) . x))) by A2, A5, A44, A46, MATRIX_0:def 7

            .= (( Segm (A,( Seg n),N)) * (I,x)) by A4, A38, A47, MATRIX13:def 1

            .= ( 0. K) by A4, A43, A46, A47, MATRIX_1:def 3;

            

            hence (( mlt (( Line (A,i)),( Col (X,j)))) . kk) = (( 0. K) * (X * (kk,j))) by A2, A5, A18, A44, A46, A48, FVSUM_1: 61

            .= ( 0. K);

          end;

            suppose

             A49: kk in SN;

            then

            consider x be object such that

             A50: x in ( dom ( Sgm SN)) and

             A51: (( Sgm SN) . x) = kk by A37, FUNCT_1:def 3;

            reconsider x as Element of NAT by A50;

            

             A52: (( Line (A,i)) . kk) = (A * (I,(( Sgm SN) . x))) by A5, A42, A51, MATRIX_0:def 7;

             [(( Sgm SN) . x), (( Sgm ( Seg l)) . J)] in ( Indices X) by A15, A21, A34, A35, A49, A51, ZFMISC_1: 87;

            then

             A53: [x, J] in ( Indices ZERO) by A17, A30, A37, A40, MATRIX13: 17;

            (( Col (X,j)) . kk) = (X * ((( Sgm SN) . x),(( Sgm ( Seg l)) . j))) by A15, A19, A35, A49, A51, MATRIX_0:def 8

            .= (ZERO * (x,J)) by A17, A53, MATRIX13:def 1

            .= ( 0. K) by A53, MATRIX_3: 1;

            

            hence (( mlt (( Line (A,i)),( Col (X,j)))) . kk) = ((A * (I,(( Sgm SN) . x))) * ( 0. K)) by A5, A18, A42, A52, FVSUM_1: 61

            .= ( 0. K);

          end;

        end;

        

         A54: (( Col (X,j)) . (( Sgm N) . i)) = (X * ((( Sgm N) . i),j)) by A2, A19, A33, MATRIX_0:def 8

        .= (B * (I,J)) by A16, A35, A36, MATRIX13:def 1;

        (( Line (A,i)) . (( Sgm N) . i)) = (A * (I,(( Sgm N) . I))) by A2, A5, A33, MATRIX_0:def 7

        .= (( Segm (A,( Seg n),N)) * (I,I)) by A4, A38, A39, MATRIX13:def 1

        .= ( 1_ K) by A4, A39, MATRIX_1:def 3;

        

        then

         A55: (( mlt (( Line (A,i)),( Col (X,j)))) . (( Sgm N) . i)) = (( 1_ K) * (B * (I,J))) by A2, A5, A18, A33, A54, FVSUM_1: 61

        .= (B * (I,J));

        (AX * (i,j)) = (( Line (A,i)) "*" ( Col (X,j))) by A5, A18, A26, MATRIX_3:def 4

        .= ( Sum ( mlt (( Line (A,i)),( Col (X,j)))));

        hence (AX * (i,j)) = (B * (i,j)) by A2, A33, A55, A29, A41, MATRIX_3: 12;

      end;

      then AX = B by MATRIX_0: 27;

      hence thesis by A5, A22, A18, A23;

    end;

    theorem :: MATRIX15:51

    

     Th51: for A be Matrix of 0 , n, K, B be Matrix of 0 , m, K holds ( Solutions_of (A,B)) = { {} }

    proof

      let A be Matrix of 0 , n, K, B be Matrix of 0 , m, K;

      

       A1: ( len A) = 0 by MATRIX_0:def 2;

      

       A2: ( Solutions_of (A,B)) c= { {} }

      proof

        let x be object;

        assume x in ( Solutions_of (A,B));

        then ex X st X = x & ( len X) = ( width A) & ( width X) = ( width B) & (A * X) = B;

        then x = {} by A1, MATRIX_0:def 3;

        hence thesis by TARSKI:def 1;

      end;

      ( len B) = 0 by MATRIX_0:def 2;

      then

       A3: B = {} & ( width B) = 0 by MATRIX_0:def 3;

      

       A4: ( width A) = 0 by A1, MATRIX_0:def 3;

      then ( len (A * A)) = 0 by A1, MATRIX_3:def 4;

      then (A * A) = {} ;

      then A in ( Solutions_of (A,B)) by A1, A4, A3;

      hence thesis by A2, ZFMISC_1: 33;

    end;

    theorem :: MATRIX15:52

    

     Th52: for B be Matrix of K st ( Solutions_of (( 0. (K,n,k)),B)) is non empty holds B = ( 0. (K,n,( width B)))

    proof

      let B be Matrix of K;

      set A = ( 0. (K,n,k));

      set ZERO = ( 0. (K,n,( width B)));

      assume ( Solutions_of (( 0. (K,n,k)),B)) is non empty;

      then

      consider x be object such that

       A1: x in ( Solutions_of (( 0. (K,n,k)),B));

      

       A2: ( len A) = n by MATRIX_0:def 2;

      

       A3: ( dom A) = ( Seg n);

      

       A4: ( len ZERO) = n by MATRIX_0:def 2;

      then

       A5: ( len B) = ( len ZERO) by A1, A2, Th33;

      then

      reconsider B9 = B as Matrix of n, ( width B), K by A4, MATRIX_0: 51;

      

       A6: ex X st X = x & ( len X) = ( width A) & ( width X) = ( width B) & (A * X) = B by A1;

      now

        let i such that

         A7: 1 <= i & i <= n;

        

         A8: ( width A) = k by A7, MATRIX_0: 23;

        

         A9: i in ( Seg n) by A7;

        

        then ( Line (A,i)) = (A . i) by MATRIX_0: 52

        .= (( width A) |-> ( 0. K)) by A9, A8, FINSEQ_2: 57;

        

        then (( width B) |-> ( 0. K)) = ( Line (B,i)) by A1, A6, A3, A9, Th41

        .= (B9 . i) by A9, MATRIX_0: 52;

        hence (B . i) = (ZERO . i) by A9, FINSEQ_2: 57;

      end;

      hence thesis by A4, A5;

    end;

    theorem :: MATRIX15:53

    

     Th53: for A be Matrix of n, k, K, B be Matrix of n, m, K st n > 0 holds x in ( Solutions_of (A,B)) implies x is Matrix of k, m, K

    proof

      let A be Matrix of n, k, K, B be Matrix of n, m, K;

      assume n > 0 ;

      then

       A1: ( width A) = k & ( width B) = m by MATRIX_0: 23;

      assume x in ( Solutions_of (A,B));

      then ex X st X = x & ( len X) = k & ( width X) = m & (A * X) = B by A1;

      hence thesis by MATRIX_0: 51;

    end;

    theorem :: MATRIX15:54

    

     Th54: n > 0 & k > 0 implies ( Solutions_of (( 0. (K,n,k)),( 0. (K,n,m)))) = the set of all X where X be Matrix of k, m, K

    proof

      assume that

       A1: n > 0 and

       A2: k > 0 ;

      set B = ( 0. (K,n,m));

      

       A3: ( width B) = m by A1, MATRIX_0: 23;

      set XX = the set of all X where X be Matrix of k, m, K;

      set A = ( 0. (K,n,k));

      thus ( Solutions_of (A,B)) c= XX

      proof

        let x be object;

        assume x in ( Solutions_of (A,B));

        then x is Matrix of k, m, K by A1, Th53;

        hence thesis;

      end;

      let x be object;

      assume x in XX;

      then

      consider X be Matrix of k, m, K such that

       A4: x = X and not contradiction;

      

       A5: ( width A) = k & ( len X) = k by A1, A2, MATRIX_0: 23;

      

       A6: ( width X) = m by A2, MATRIX_0: 23;

      ( len A) = n by A1, MATRIX_0: 23;

      then (A * X) = B by A1, A2, A5, A6, MATRIX_5: 22;

      hence thesis by A4, A3, A5, A6;

    end;

    theorem :: MATRIX15:55

    n > 0 & ( Solutions_of (( 0. (K,n, 0 )),( 0. (K,n,m)))) is non empty implies m = 0

    proof

      assume that

       A1: n > 0 and

       A2: ( Solutions_of (( 0. (K,n, 0 )),( 0. (K,n,m)))) is non empty;

      consider x be object such that

       A3: x in ( Solutions_of (( 0. (K,n, 0 )),( 0. (K,n,m)))) by A2;

      

       A4: ( width ( 0. (K,n, 0 ))) = 0 by A1, MATRIX_0: 23;

      ex X st X = x & ( len X) = ( width ( 0. (K,n, 0 ))) & ( width X) = ( width ( 0. (K,n,m))) & (( 0. (K,n, 0 )) * X) = ( 0. (K,n,m)) by A3;

      

      hence 0 = ( width ( 0. (K,n,m))) by A4, MATRIX_0:def 3

      .= m by A1, MATRIX_0: 23;

    end;

    theorem :: MATRIX15:56

    

     Th56: ( Solutions_of (( 0. (K,n, 0 )),( 0. (K,n, 0 )))) = { {} }

    proof

      per cases ;

        suppose n = 0 ;

        hence thesis by Th51;

      end;

        suppose

         A1: n > 0 ;

        set B = ( 0. (K,n, 0 ));

        set A = ( 0. (K,n, 0 ));

        reconsider E = {} as Matrix of 0 , 0 , K by MATRIX_0: 13;

        

         A2: ( width A) = 0 by A1, MATRIX_0: 23;

        then

         A3: for i, j st [i, j] in ( Indices B) holds (B * (i,j)) = ((A * E) * (i,j)) by ZFMISC_1: 90;

        

         A4: ( Solutions_of (A,B)) c= { {} }

        proof

          let x be object;

          assume x in ( Solutions_of (A,B));

          then

          reconsider X = x as Matrix of 0 , 0 , K by A1, Th53;

          ( len X) = 0 by MATRIX_0:def 2;

          then X = {} ;

          hence thesis by TARSKI:def 1;

        end;

        

         A5: ( len E) = 0 ;

        

         A6: ( width E) = 0 by MATRIX_0: 24;

        then

         A7: ( width (A * E)) = 0 by A2, A5, MATRIX_3:def 4;

        

         A8: ( len A) = n by A1, MATRIX_0: 23;

        then ( len (A * E)) = n by A2, A5, MATRIX_3:def 4;

        then (A * E) = B by A8, A2, A7, A3, MATRIX_0: 21;

        then E in ( Solutions_of (A,B)) by A2, A5, A6;

        hence thesis by A4, ZFMISC_1: 33;

      end;

    end;

    begin

    scheme :: MATRIX15:sch1

    GAUSS1 { K() -> Field , n,m,m9() -> Nat , A() -> Matrix of n(), m(), K() , B() -> Matrix of n(), m9(), K() , F( Matrix of n(), m9(), K(), Nat, Nat, Element of K()) -> Matrix of n(), m9(), K() , P[ set, set] } :

ex A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K(), N be without_zero finite Subset of NAT st N c= ( Seg m()) & ( the_rank_of A()) = ( the_rank_of A9) & ( the_rank_of A()) = ( card N) & P[A9, B9] & ( Segm (A9,( Seg ( card N)),N)) is diagonal & (for i st i in ( Seg ( card N)) holds (A9 * (i,(( Sgm N) /. i))) <> ( 0. K())) & (for i st i in ( dom A9) & i > ( card N) holds ( Line (A9,i)) = (m() |-> ( 0. K()))) & for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A9)) & j < (( Sgm N) . i) holds (A9 * (i,j)) = ( 0. K())

      provided

       A1: P[A(), B()]

       and

       A2: for A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() st P[A9, B9] holds for i, j st i <> j & j in ( dom A9) holds for a be Element of K() holds P[( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j)))))), F(B9,i,j,a)];

      defpred PP[ FinSequence of NAT , Nat, Nat, Matrix of n(), m(), K()] means ($4 * ($2,($1 /. $2))) <> ( 0. K()) & ($3 in ( dom $1) & $2 < $3 implies ($1 /. $2) < ($1 /. $3)) & ($3 in (( dom $1) \ {$2}) implies ($4 * ($3,($1 /. $2))) = ( 0. K())) & ($3 in ( Seg ( width $4)) & $3 < ($1 /. $2) implies ($4 * ($2,$3)) = ( 0. K()));

      set r = ( the_rank_of A());

      ex A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() st P[A9, B9] & r = ( the_rank_of A9) & (for i st i in ( dom A9) & i > r holds ( Line (A9,i)) = (m() |-> ( 0. K()))) & ex f be FinSequence of NAT st ( len f) = ( the_rank_of A9) & f is one-to-one & ( rng f) c= ( Seg ( width A9)) & for i, j st i in ( dom f) holds PP[f, i, j, A9]

      proof

        per cases ;

          suppose

           A3: n() = 0 ;

          take A9 = A(), B9 = B();

          ( dom A9) = ( Seg ( len A9)) & ( len A9) = 0 by A3, FINSEQ_1:def 3, MATRIX_0:def 2;

          hence P[A9, B9] & r = ( the_rank_of A9) & for i st i in ( dom A9) & i > r holds ( Line (A9,i)) = (m() |-> ( 0. K())) by A1;

          take ( <*> NAT );

          ( len A9) = 0 by A3, MATRIX_0: 22;

          hence thesis by MATRIX13: 74;

        end;

          suppose

           A4: n() > 0 ;

          defpred Q[ Nat] means $1 <= m() implies ex A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() st P[A9, B9] & r = ( the_rank_of A9) & ex f be FinSequence of NAT st (for i, j st [i, j] in ( Indices A9) & i > ( len f) & j <= $1 holds (A9 * (i,j)) = ( 0. K())) & f is one-to-one & ( len f) <= $1 & ( len f) <= n() & ( rng f) c= ( Seg $1) & for i, j st i in ( dom f) holds PP[f, i, j, A9];

          

           A5: for n st Q[n] holds Q[(n + 1)]

          proof

            let n such that

             A6: Q[n];

            set n1 = (n + 1);

            assume

             A7: n1 <= m();

            then

            consider A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() such that

             A8: P[A9, B9] & r = ( the_rank_of A9) and

             A9: ex f be FinSequence of NAT st (for i, j st [i, j] in ( Indices A9) & i > ( len f) & j <= n holds (A9 * (i,j)) = ( 0. K())) & f is one-to-one & ( len f) <= n & ( len f) <= n() & ( rng f) c= ( Seg n) & for i, j st i in ( dom f) holds PP[f, i, j, A9] by A6, NAT_1: 13;

            consider f be FinSequence of NAT such that

             A10: for i, j st [i, j] in ( Indices A9) & i > ( len f) & j <= n holds (A9 * (i,j)) = ( 0. K()) and

             A11: f is one-to-one and

             A12: ( len f) <= n and

             A13: ( len f) <= n() and

             A14: ( rng f) c= ( Seg n) and

             A15: for i, j st i in ( dom f) holds PP[f, i, j, A9] by A9;

            per cases ;

              suppose

               A16: for i, j st [i, j] in ( Indices A9) & i > ( len f) & j = n1 holds (A9 * (i,j)) = ( 0. K());

               A17:

              now

                let i, j such that

                 A18: [i, j] in ( Indices A9) & i > ( len f) and

                 A19: j <= n1;

                j <= n or j = n1 by A19, NAT_1: 8;

                hence (A9 * (i,j)) = ( 0. K()) by A10, A16, A18;

              end;

              n <= n1 by NAT_1: 13;

              then ( Seg n) c= ( Seg n1) by FINSEQ_1: 5;

              then

               A20: ( rng f) c= ( Seg n1) by A14;

              ( len f) <= n1 by A12, NAT_1: 12;

              hence thesis by A8, A11, A13, A15, A17, A20;

            end;

              suppose ex i, j st [i, j] in ( Indices A9) & i > ( len f) & j = n1 & (A9 * (i,j)) <> ( 0. K());

              then

              consider i0,j0 be Nat such that

               A21: [i0, j0] in ( Indices A9) and

               A22: i0 > ( len f) and

               A23: j0 = n1 and

               A24: (A9 * (i0,j0)) <> ( 0. K());

              

               A25: ( Indices A9) = [:( Seg n()), ( Seg m()):] by A4, MATRIX_0: 23;

              then

               A26: n1 in ( Seg m()) by A21, A23, ZFMISC_1: 87;

              

               A27: i0 in ( Seg n()) by A21, A25, ZFMISC_1: 87;

              then

               A28: i0 <= n() by FINSEQ_1: 1;

              

               A29: (( len f) + 1) <= i0 by A22, NAT_1: 13;

              then ( 0 + 1) <= (( len f) + 1) & (( len f) + 1) <= n() by A28, XREAL_1: 7, XXREAL_0: 2;

              then

               A30: (( len f) + 1) in ( Seg n());

              defpred QQ[ Nat] means $1 <= n() implies ex A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() st P[A9, B9] & r = ( the_rank_of A9) & (A9 * ((( len f) + 1),n1)) <> ( 0. K()) & (for i, j st [i, j] in ( Indices A9) & i > ( len f) & j <= n holds (A9 * (i,j)) = ( 0. K())) & (for i, j st i in ( dom f) holds PP[f, i, j, A9]) & for j st j in (( dom A9) \ {(( len f) + 1)}) & j <= $1 holds (A9 * (j,n1)) = ( 0. K());

              

               A31: ( dom f) = ( Seg ( len f)) by FINSEQ_1:def 3;

              n <= m() by A7, NAT_1: 13;

              then

               A32: ( Seg n) c= ( Seg m()) by FINSEQ_1: 5;

              

               A33: ( Seg ( len f)) c= ( Seg n()) by A13, FINSEQ_1: 5;

              

               A34: for k st QQ[k] holds QQ[(k + 1)]

              proof

                let k such that

                 A35: QQ[k];

                set k1 = (k + 1);

                assume k1 <= n();

                then

                consider AA be Matrix of n(), m(), K(), BB be Matrix of n(), m9(), K() such that

                 A36: P[AA, BB] and

                 A37: r = ( the_rank_of AA) and

                 A38: (AA * ((( len f) + 1),n1)) <> ( 0. K()) and

                 A39: for i, j st [i, j] in ( Indices AA) & i > ( len f) & j <= n holds (AA * (i,j)) = ( 0. K()) and

                 A40: for i, j st i in ( dom f) holds PP[f, i, j, AA] and

                 A41: for j st j in (( dom AA) \ {(( len f) + 1)}) & j <= k holds (AA * (j,n1)) = ( 0. K()) by A35, NAT_1: 13;

                now

                  per cases ;

                    suppose

                     A42: k1 = (( len f) + 1);

                    take RA = AA, RB = BB;

                    now

                      let j such that

                       A43: j in (( dom RA) \ {(( len f) + 1)}) and

                       A44: j <= k1;

                      j <> (( len f) + 1) by A43, ZFMISC_1: 56;

                      then j < (k + 1) by A42, A44, XXREAL_0: 1;

                      then j <= k by NAT_1: 13;

                      hence (RA * (j,n1)) = ( 0. K()) by A41, A43;

                    end;

                    hence thesis by A36, A37, A38, A39, A40;

                  end;

                    suppose

                     A45: k1 <> (( len f) + 1);

                    set LA = ( Line (AA,k1));

                    set LAf = ( Line (AA,(( len f) + 1)));

                    set a = (AA * ((( len f) + 1),n1));

                    set RA = ( RLine (AA,k1,(LA + (( - ((AA * (k1,n1)) * (a " ))) * LAf))));

                    

                     A46: ( width AA) = m() by A4, MATRIX_0: 23;

                    then

                     A47: ( len (LA + (( - ((AA * (k1,n1)) * (a " ))) * LAf))) = m() by CARD_1:def 7;

                    

                     A48: ( Indices A9) = ( Indices AA) by MATRIX_0: 26;

                    then [(( len f) + 1), n1] in ( Indices AA) by A25, A30, A26, ZFMISC_1: 87;

                    then

                     A49: (RA * ((( len f) + 1),n1)) <> ( 0. K()) by A38, A45, A46, A47, MATRIX11:def 3;

                    

                     A50: ( Indices A9) = ( Indices RA) by MATRIX_0: 26;

                     A51:

                    now

                      let i, j such that

                       A52: [i, j] in ( Indices RA) and

                       A53: i > ( len f) and

                       A54: j <= n;

                      now

                        per cases ;

                          suppose

                           A55: i = k1;

                          

                           A56: j in ( Seg m()) by A25, A50, A52, ZFMISC_1: 87;

                          then (( len f) + 1) > ( len f) & [(( len f) + 1), j] in ( Indices A9) by A25, A30, NAT_1: 13, ZFMISC_1: 87;

                          then (AA * ((( len f) + 1),j)) = ( 0. K()) by A39, A48, A54;

                          then (LAf . j) = ( 0. K()) by A46, A56, MATRIX_0:def 7;

                          

                          then

                           A57: ((( - ((AA * (k1,n1)) * (a " ))) * LAf) . j) = (( - ((AA * (k1,n1)) * (a " ))) * ( 0. K())) by A46, A56, FVSUM_1: 51

                          .= ( 0. K());

                          (LA . j) = (AA * (k1,j)) by A46, A56, MATRIX_0:def 7

                          .= ( 0. K()) by A39, A48, A50, A52, A53, A54, A55;

                          

                          then (( 0. K()) + ( 0. K())) = ((LA + (( - ((AA * (k1,n1)) * (a " ))) * LAf)) . j) by A46, A56, A57, FVSUM_1: 18

                          .= (RA * (i,j)) by A48, A50, A46, A47, A52, A55, MATRIX11:def 3;

                          hence (RA * (i,j)) = ( 0. K()) by RLVECT_1:def 4;

                        end;

                          suppose i <> k1;

                          

                          hence (RA * (i,j)) = (AA * (i,j)) by A48, A50, A46, A47, A52, MATRIX11:def 3

                          .= ( 0. K()) by A39, A48, A50, A52, A53, A54;

                        end;

                      end;

                      hence (RA * (i,j)) = ( 0. K());

                    end;

                    set RB = F(BB,k1,+,-);

                    take RA, RB;

                    

                     A58: ( width RA) = m() by A4, MATRIX_0: 23;

                    

                     A59: ( len AA) = n() by MATRIX_0:def 2;

                     A60:

                    now

                      

                       A61: ( dom AA) = ( Seg ( len AA)) by FINSEQ_1:def 3;

                      let j such that

                       A62: j in (( dom RA) \ {(( len f) + 1)}) and

                       A63: j <= k1;

                      j in ( dom RA) by A62, XBOOLE_0:def 5;

                      then

                       A64: [j, n1] in ( Indices AA) by A26, A48, A50, A58, ZFMISC_1: 87;

                      

                       A65: ( dom RA) = ( Seg ( len RA)) & ( len RA) = n() by FINSEQ_1:def 3, MATRIX_0:def 2;

                      now

                        per cases by A63, NAT_1: 8;

                          suppose

                           A66: j <= k;

                          then j < k1 by NAT_1: 13;

                          

                          hence (RA * (j,n1)) = (AA * (j,n1)) by A46, A47, A64, MATRIX11:def 3

                          .= ( 0. K()) by A41, A59, A62, A65, A61, A66;

                        end;

                          suppose

                           A67: j = k1;

                          (LAf . n1) = a by A26, A46, MATRIX_0:def 7;

                          

                          then

                           A68: ((( - ((AA * (k1,n1)) * (a " ))) * LAf) . n1) = (( - ((AA * (k1,n1)) * (a " ))) * a) by A26, A46, FVSUM_1: 51

                          .= ((( - (AA * (k1,n1))) * (a " )) * a) by VECTSP_1: 9

                          .= (( - (AA * (k1,n1))) * ((a " ) * a)) by GROUP_1:def 3

                          .= (( - (AA * (k1,n1))) * ( 1_ K())) by A38, VECTSP_1:def 10

                          .= ( - (AA * (k1,n1)));

                          (LA . n1) = (AA * (k1,n1)) by A26, A46, MATRIX_0:def 7;

                          

                          then ((LA + (( - ((AA * (k1,n1)) * (a " ))) * LAf)) . n1) = ((AA * (k1,n1)) + ( - (AA * (k1,n1)))) by A26, A46, A68, FVSUM_1: 18

                          .= ( 0. K()) by VECTSP_1: 19;

                          hence (RA * (j,n1)) = ( 0. K()) by A46, A47, A64, A67, MATRIX11:def 3;

                        end;

                      end;

                      hence (RA * (j,n1)) = ( 0. K());

                    end;

                    

                     A69: ( dom AA) = ( Seg ( len AA)) by FINSEQ_1:def 3;

                     A70:

                    now

                      let i, j such that

                       A71: i in ( dom f);

                      set fi = (f /. i);

                      

                       A72: fi = (f . i) & (f . i) in ( rng f) by A71, FUNCT_1:def 3, PARTFUN1:def 6;

                      then

                       A73: fi in ( Seg n) by A14;

                      

                       A74: (( len f) + 1) > ( len f) & fi <= n by A14, A72, FINSEQ_1: 1, NAT_1: 13;

                       [(( len f) + 1), fi] in ( Indices AA) & (LAf . fi) = (AA * ((( len f) + 1),fi)) by A25, A32, A30, A48, A46, A73, MATRIX_0:def 7, ZFMISC_1: 87;

                      then (LAf . fi) = ( 0. K()) by A39, A74;

                      

                      then

                       A75: ((( - ((AA * (k1,n1)) * (a " ))) * LAf) . fi) = (( - ((AA * (k1,n1)) * (a " ))) * ( 0. K())) by A32, A46, A73, FVSUM_1: 51

                      .= ( 0. K());

                      (LA . fi) = (AA * (k1,fi)) by A32, A46, A73, MATRIX_0:def 7;

                      

                      then

                       A76: ((LA + (( - ((AA * (k1,n1)) * (a " ))) * LAf)) . fi) = ((AA * (k1,fi)) + ( 0. K())) by A32, A46, A73, A75, FVSUM_1: 18

                      .= (AA * (k1,fi)) by RLVECT_1:def 4;

                      

                       A77: [i, fi] in ( Indices AA) by A25, A32, A33, A31, A48, A71, A73, ZFMISC_1: 87;

                      now

                        per cases ;

                          suppose i <> k1;

                          then (RA * (i,fi)) = (AA * (i,fi)) by A46, A47, A77, MATRIX11:def 3;

                          hence (RA * (i,fi)) <> ( 0. K()) by A40, A71;

                        end;

                          suppose i = k1;

                          then (RA * (i,fi)) = (AA * (i,fi)) by A46, A47, A77, A76, MATRIX11:def 3;

                          hence (RA * (i,(f /. i))) <> ( 0. K()) by A40, A71;

                        end;

                      end;

                      hence (RA * (i,fi)) <> ( 0. K()) & (j in ( dom f) & i < j implies fi < (f /. j)) by A15, A71;

                      thus j in (( dom f) \ {i}) implies (RA * (j,fi)) = ( 0. K())

                      proof

                        assume

                         A78: j in (( dom f) \ {i});

                        then j in ( Seg ( len f)) by A31, XBOOLE_0:def 5;

                        then

                         A79: [j, fi] in ( Indices AA) by A25, A32, A33, A48, A73, ZFMISC_1: 87;

                        per cases ;

                          suppose j <> k1;

                          

                          hence (RA * (j,fi)) = (AA * (j,fi)) by A46, A47, A79, MATRIX11:def 3

                          .= ( 0. K()) by A40, A71, A78;

                        end;

                          suppose

                           A80: j = k1;

                          

                          hence (RA * (j,fi)) = ((LA + (( - ((AA * (k1,n1)) * (a " ))) * LAf)) . fi) by A46, A47, A79, MATRIX11:def 3

                          .= ( 0. K()) by A40, A71, A76, A78, A80;

                        end;

                      end;

                      thus j in ( Seg ( width RA)) & j < (f /. i) implies (RA * (i,j)) = ( 0. K())

                      proof

                        assume that

                         A81: j in ( Seg ( width RA)) and

                         A82: j < (f /. i);

                        

                         A83: [(( len f) + 1), j] in ( Indices AA) by A30, A59, A69, A46, A58, A81, ZFMISC_1: 87;

                        

                         A84: [i, j] in ( Indices AA) by A33, A31, A59, A69, A46, A58, A71, A81, ZFMISC_1: 87;

                        per cases ;

                          suppose i <> k1;

                          

                          hence (RA * (i,j)) = (AA * (i,j)) by A46, A47, A84, MATRIX11:def 3

                          .= ( 0. K()) by A40, A46, A58, A71, A81, A82;

                        end;

                          suppose

                           A85: i = k1;

                          fi <= n by A14, A72, FINSEQ_1: 1;

                          then

                           A86: j <= n by A82, XXREAL_0: 2;

                          (( len f) + 1) > ( len f) by NAT_1: 13;

                          

                          then ( 0. K()) = (AA * ((( len f) + 1),j)) by A39, A83, A86

                          .= (LAf . j) by A46, A58, A81, MATRIX_0:def 7;

                          

                          then

                           A87: ((( - ((AA * (k1,n1)) * (a " ))) * LAf) . j) = (( - ((AA * (k1,n1)) * (a " ))) * ( 0. K())) by A46, A58, A81, FVSUM_1: 51

                          .= ( 0. K());

                          (LA . j) = (AA * (i,j)) by A46, A58, A81, A85, MATRIX_0:def 7

                          .= ( 0. K()) by A40, A46, A58, A71, A81, A82;

                          

                          then ((LA + (( - ((AA * (k1,n1)) * (a " ))) * LAf)) . j) = (( 0. K()) + ( 0. K())) by A46, A58, A81, A87, FVSUM_1: 18

                          .= ( 0. K()) by RLVECT_1:def 4;

                          hence thesis by A46, A47, A84, A85, MATRIX11:def 3;

                        end;

                      end;

                    end;

                    

                     A88: (( len f) + 1) in ( Seg ( len AA)) by A4, A30, MATRIX_0: 23;

                    then

                     A89: r = ( the_rank_of RA) by A37, A45, MATRIX13: 92;

                    P[RA, RB] by A2, A36, A45, A88, A69;

                    hence thesis by A89, A49, A51, A70, A60;

                  end;

                end;

                hence thesis;

              end;

              

               A90: j0 in ( Seg m()) by A21, A25, ZFMISC_1: 87;

              ex A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() st P[A9, B9] & r = ( the_rank_of A9) & (A9 * ((( len f) + 1),n1)) <> ( 0. K()) & (for i, j st [i, j] in ( Indices A9) & i > ( len f) & j <= n holds (A9 * (i,j)) = ( 0. K())) & for i, j st i in ( dom f) holds PP[f, i, j, A9]

              proof

                per cases ;

                  suppose (A9 * ((( len f) + 1),n1)) <> ( 0. K());

                  hence thesis by A8, A10, A15;

                end;

                  suppose

                   A91: (A9 * ((( len f) + 1),n1)) = ( 0. K());

                  set RB = F(B9,+,i0,1_);

                  set LA = ( Line (A9,i0));

                  set LAf = ( Line (A9,(( len f) + 1)));

                  set RA = ( RLine (A9,(( len f) + 1),(LAf + (( 1_ K()) * LA))));

                  take RA, RB;

                  i0 in ( dom A9) & ( dom A9) = ( Seg ( len A9)) by A21, FINSEQ_1:def 3, ZFMISC_1: 87;

                  hence P[RA, RB] & r = ( the_rank_of RA) by A2, A8, A23, A24, A91, MATRIX13: 92;

                  

                   A92: (( 1_ K()) * LA) = LA & ( len (LAf + LA)) = ( width A9) by CARD_1:def 7, FVSUM_1: 57;

                   [(( len f) + 1), j0] in ( Indices A9) by A25, A30, A90, ZFMISC_1: 87;

                  then

                   A93: (RA * ((( len f) + 1),n1)) = ((LAf + LA) . n1) by A23, A92, MATRIX11:def 3;

                  

                   A94: ( width A9) = m() by A4, MATRIX_0: 23;

                  then

                   A95: (LA . n1) = (A9 * (i0,n1)) by A23, A90, MATRIX_0:def 7;

                  (LAf . n1) = ( 0. K()) by A23, A90, A91, A94, MATRIX_0:def 7;

                  

                  then (RA * ((( len f) + 1),n1)) = (( 0. K()) + (A9 * (i0,n1))) by A26, A94, A93, A95, FVSUM_1: 18

                  .= (A9 * (i0,n1)) by RLVECT_1:def 4;

                  hence (RA * ((( len f) + 1),n1)) <> ( 0. K()) by A23, A24;

                  

                   A96: ( Indices RA) = ( Indices A9) by MATRIX_0: 26;

                  now

                    let i, j such that

                     A97: [i, j] in ( Indices RA) and

                     A98: i > ( len f) and

                     A99: j <= n;

                    

                     A100: j in ( Seg m()) by A94, A96, A97, ZFMISC_1: 87;

                    

                     A101: i >= (( len f) + 1) by A98, NAT_1: 13;

                    now

                      per cases by A101, XXREAL_0: 1;

                        suppose i > (( len f) + 1);

                        

                        hence (RA * (i,j)) = (A9 * (i,j)) by A92, A96, A97, MATRIX11:def 3

                        .= ( 0. K()) by A10, A96, A97, A98, A99;

                      end;

                        suppose

                         A102: i = (( len f) + 1);

                        

                         A103: [i0, j] in ( Indices A9) by A25, A27, A100, ZFMISC_1: 87;

                        

                         A104: (LAf . j) = (A9 * ((( len f) + 1),j)) & (LA . j) = (A9 * (i0,j)) by A94, A100, MATRIX_0:def 7;

                        (RA * (i,j)) = ((LAf + LA) . j) by A92, A96, A97, A102, MATRIX11:def 3;

                        

                        hence (RA * (i,j)) = ((A9 * ((( len f) + 1),j)) + (A9 * (i0,j))) by A94, A100, A104, FVSUM_1: 18

                        .= (( 0. K()) + (A9 * (i0,j))) by A10, A96, A97, A98, A99, A102

                        .= (( 0. K()) + ( 0. K())) by A10, A22, A99, A103

                        .= ( 0. K()) by RLVECT_1:def 4;

                      end;

                    end;

                    hence (RA * (i,j)) = ( 0. K());

                  end;

                  hence for i, j st [i, j] in ( Indices RA) & i > ( len f) & j <= n holds (RA * (i,j)) = ( 0. K());

                  let i, j such that

                   A105: i in ( dom f);

                  i <= ( len f) by A31, A105, FINSEQ_1: 1;

                  then

                   A106: i < (( len f) + 1) by NAT_1: 13;

                  (f /. i) = (f . i) & (f . i) in ( rng f) by A105, FUNCT_1:def 3, PARTFUN1:def 6;

                  then

                   A107: (f /. i) in ( Seg n) by A14;

                  then [i, (f /. i)] in ( Indices A9) by A25, A32, A33, A31, A105, ZFMISC_1: 87;

                  then (RA * (i,(f /. i))) = (A9 * (i,(f /. i))) by A92, A106, MATRIX11:def 3;

                  hence (RA * (i,(f /. i))) <> ( 0. K()) & (j in ( dom f) & i < j implies (f /. i) < (f /. j)) by A15, A105;

                  thus j in (( dom f) \ {i}) implies (RA * (j,(f /. i))) = ( 0. K())

                  proof

                    assume

                     A108: j in (( dom f) \ {i});

                    then

                     A109: j in ( dom f) by XBOOLE_0:def 5;

                    then j <= ( len f) by A31, FINSEQ_1: 1;

                    then

                     A110: j < (( len f) + 1) by NAT_1: 13;

                     [j, (f /. i)] in ( Indices A9) by A25, A32, A33, A31, A107, A109, ZFMISC_1: 87;

                    

                    hence (RA * (j,(f /. i))) = (A9 * (j,(f /. i))) by A92, A110, MATRIX11:def 3

                    .= ( 0. K()) by A15, A105, A108;

                  end;

                  assume that

                   A111: j in ( Seg ( width RA)) and

                   A112: j < (f /. i);

                  

                   A113: ( width RA) = ( width A9) by A92, MATRIX11:def 3;

                  then [i, j] in ( Indices A9) by A25, A33, A31, A94, A105, A111, ZFMISC_1: 87;

                  

                  hence (RA * (i,j)) = (A9 * (i,j)) by A92, A106, MATRIX11:def 3

                  .= ( 0. K()) by A15, A105, A111, A112, A113;

                end;

              end;

              then

              consider A0 be Matrix of n(), m(), K(), B0 be Matrix of n(), m9(), K() such that

               A114: P[A0, B0] & r = ( the_rank_of A0) & ((A0 * ((( len f) + 1),n1)) <> ( 0. K()) & for i, j st [i, j] in ( Indices A0) & i > ( len f) & j <= n holds (A0 * (i,j)) = ( 0. K())) & for i, j st i in ( dom f) holds PP[f, i, j, A0];

              

               A115: QQ[ 0 ]

              proof

                assume 0 <= n();

                take A0, B0;

                now

                  

                   A116: ( dom A0) = ( Seg ( len A0)) by FINSEQ_1:def 3;

                  let j;

                  assume j in (( dom A0) \ {(( len f) + 1)}) & j <= 0 ;

                  hence (A0 * (j,n1)) = ( 0. K()) by A116;

                end;

                hence thesis by A114;

              end;

              for k holds QQ[k] from NAT_1:sch 2( A115, A34);

              then

              consider Aa be Matrix of n(), m(), K(), Bb be Matrix of n(), m9(), K() such that

               A117: P[Aa, Bb] & r = ( the_rank_of Aa) and

               A118: (Aa * ((( len f) + 1),n1)) <> ( 0. K()) and

               A119: for i, j st [i, j] in ( Indices Aa) & i > ( len f) & j <= n holds (Aa * (i,j)) = ( 0. K()) and

               A120: for i, j st i in ( dom f) holds PP[f, i, j, Aa] and

               A121: for j st j in (( dom Aa) \ {(( len f) + 1)}) & j <= n() holds (Aa * (j,n1)) = ( 0. K());

              take Aa, Bb;

              thus P[Aa, Bb] & r = ( the_rank_of Aa) by A117;

              take f9 = (f ^ <*n1*>);

              

               A122: ( len f9) = (( len f) + 1) by FINSEQ_2: 16;

              

               A123: ( len Aa) = n() & ( dom Aa) = ( Seg ( len Aa)) by A4, FINSEQ_1:def 3, MATRIX_0: 23;

               A124:

              now

                let i, j such that

                 A125: [i, j] in ( Indices Aa) and

                 A126: i > ( len f9) and

                 A127: j <= n1;

                per cases by A127, NAT_1: 8;

                  suppose

                   A128: j <= n;

                  i > ( len f) by A122, A126, NAT_1: 13;

                  hence (Aa * (i,j)) = ( 0. K()) by A119, A125, A128;

                end;

                  suppose

                   A129: j = n1;

                  i in ( dom Aa) by A125, ZFMISC_1: 87;

                  then i in (( dom Aa) \ {(( len f) + 1)}) & i <= n() by A122, A123, A126, FINSEQ_1: 1, ZFMISC_1: 56;

                  hence (Aa * (i,j)) = ( 0. K()) by A121, A129;

                end;

              end;

              

               A130: ( width Aa) = m() by A4, MATRIX_0: 23;

              

               A131: ( len f9) <= n() by A28, A29, A122, XXREAL_0: 2;

               A132:

              now

                let i, j such that

                 A133: i in ( dom f9);

                

                 A134: ( dom f9) = ( Seg (( len f) + 1)) by A122, FINSEQ_1:def 3

                .= (( dom f) \/ {(( len f) + 1)}) by A31, FINSEQ_1: 9;

                 A135:

                now

                  let k such that

                   A136: k in ( dom f);

                  

                   A137: k in ( dom f9) by A134, A136, XBOOLE_0:def 3;

                  

                  thus (f /. k) = (f . k) by A136, PARTFUN1:def 6

                  .= (f9 . k) by A136, FINSEQ_1:def 7

                  .= (f9 /. k) by A137, PARTFUN1:def 6;

                end;

                now

                  per cases by A133, A134, XBOOLE_0:def 3;

                    suppose

                     A138: i in ( dom f);

                    then (f /. i) = (f9 /. i) by A135;

                    hence (Aa * (i,(f9 /. i))) <> ( 0. K()) by A120, A138;

                  end;

                    suppose

                     A139: i in {(( len f) + 1)};

                    

                     A140: (f9 /. i) = (f9 . i) by A133, PARTFUN1:def 6;

                    i = (( len f) + 1) by A139, TARSKI:def 1;

                    hence (Aa * (i,(f9 /. i))) <> ( 0. K()) by A118, A140, FINSEQ_1: 42;

                  end;

                end;

                hence (Aa * (i,(f9 /. i))) <> ( 0. K());

                thus j in ( dom f9) & i < j implies (f9 /. i) < (f9 /. j)

                proof

                  assume that

                   A141: j in ( dom f9) and

                   A142: i < j;

                  per cases by A133, A134, A141, XBOOLE_0:def 3;

                    suppose

                     A143: j in {(( len f) + 1)} & i in {(( len f) + 1)};

                    then i = (( len f) + 1) by TARSKI:def 1;

                    hence thesis by A142, A143, TARSKI:def 1;

                  end;

                    suppose

                     A144: j in {(( len f) + 1)} & i in ( dom f);

                    then (( len f) + 1) = j by TARSKI:def 1;

                    then

                     A145: (f9 . j) = n1 by FINSEQ_1: 42;

                    (f /. i) = (f . i) & (f . i) in ( rng f) by A144, FUNCT_1:def 3, PARTFUN1:def 6;

                    then

                     A146: (f /. i) <= n by A14, FINSEQ_1: 1;

                    (f9 . j) = (f9 /. j) by A141, PARTFUN1:def 6;

                    then (f /. i) < (f9 /. j) by A146, A145, NAT_1: 13;

                    hence thesis by A135, A144;

                  end;

                    suppose j in ( dom f) & i in {(( len f) + 1)};

                    then j <= ( len f) & i = (( len f) + 1) by A31, FINSEQ_1: 1, TARSKI:def 1;

                    hence thesis by A142, NAT_1: 13;

                  end;

                    suppose

                     A147: j in ( dom f) & i in ( dom f);

                    then (f /. i) = (f9 /. i) & (f /. j) = (f9 /. j) by A135;

                    hence thesis by A15, A142, A147;

                  end;

                end;

                ( dom f9) = ( Seg ( len f9)) by FINSEQ_1:def 3;

                then

                 A148: ( dom f9) c= ( dom Aa) by A123, A131, FINSEQ_1: 5;

                thus j in (( dom f9) \ {i}) implies (Aa * (j,(f9 /. i))) = ( 0. K())

                proof

                  assume

                   A149: j in (( dom f9) \ {i});

                  per cases ;

                    suppose

                     A150: i = (( len f) + 1);

                    (( len f) + 1) in {(( len f) + 1)} by TARSKI:def 1;

                    then (( len f) + 1) in ( dom f9) by A134, XBOOLE_0:def 3;

                    then

                     A151: (f9 . (( len f) + 1)) = (f9 /. i) by A150, PARTFUN1:def 6;

                    

                     A152: j in ( dom f9) by A149, ZFMISC_1: 56;

                    j <> i by A149, ZFMISC_1: 56;

                    then

                     A153: j in (( dom Aa) \ {i}) by A148, A152, ZFMISC_1: 56;

                    j <= n() by A123, A148, A152, FINSEQ_1: 1;

                    then (Aa * (j,n1)) = ( 0. K()) by A121, A150, A153;

                    hence thesis by A151, FINSEQ_1: 42;

                  end;

                    suppose

                     A154: i <> (( len f) + 1);

                    

                     A155: j in ( dom f9) by A149, XBOOLE_0:def 5;

                    

                     A156: i in ( dom f) or i in {(( len f) + 1)} by A133, A134, XBOOLE_0:def 3;

                    then

                     A157: (f . i) in ( rng f) by A154, FUNCT_1:def 3, TARSKI:def 1;

                    

                     A158: (f /. i) = (f9 /. i) & (f . i) = (f /. i) by A135, A154, A156, PARTFUN1:def 6, TARSKI:def 1;

                    then

                     A159: 1 <= (f9 /. i) by A14, A157, FINSEQ_1: 1;

                    

                     A160: (f9 /. i) <= n by A14, A158, A157, FINSEQ_1: 1;

                    n <= m() by A7, NAT_1: 13;

                    then (f9 /. i) <= m() by A160, XXREAL_0: 2;

                    then (f9 /. i) in ( Seg ( width Aa)) by A130, A159;

                    then

                     A161: [j, (f9 /. i)] in ( Indices Aa) by A148, A155, ZFMISC_1: 87;

                    per cases ;

                      suppose j = (( len f) + 1);

                      then j > ( len f) by NAT_1: 13;

                      hence thesis by A119, A160, A161;

                    end;

                      suppose

                       A162: j <> (( len f) + 1);

                      j in ( dom f9) by A149, XBOOLE_0:def 5;

                      then

                       A163: j in ( dom f) or j in {(( len f) + 1)} by A134, XBOOLE_0:def 3;

                      j <> i by A149, ZFMISC_1: 56;

                      then j in (( dom f) \ {i}) by A162, A163, TARSKI:def 1, ZFMISC_1: 56;

                      then (Aa * (j,(f /. i))) = ( 0. K()) by A120, A154, A156, TARSKI:def 1;

                      hence thesis by A135, A154, A156, TARSKI:def 1;

                    end;

                  end;

                end;

                thus j in ( Seg ( width Aa)) & j < (f9 /. i) implies (Aa * (i,j)) = ( 0. K())

                proof

                  assume that

                   A164: j in ( Seg ( width Aa)) and

                   A165: j < (f9 /. i);

                  per cases ;

                    suppose

                     A166: i in ( dom f);

                    then (f9 /. i) = (f /. i) by A135;

                    hence thesis by A120, A164, A165, A166;

                  end;

                    suppose

                     A167: not i in ( dom f);

                    i in ( dom f) or i in {(( len f) + 1)} by A133, A134, XBOOLE_0:def 3;

                    then

                     A168: i = (( len f) + 1) by A167, TARSKI:def 1;

                    then

                     A169: (f9 . i) = n1 by FINSEQ_1: 42;

                    (f9 . i) = (f9 /. i) by A133, PARTFUN1:def 6;

                    then

                     A170: j <= n by A165, A169, NAT_1: 13;

                    

                     A171: i > ( len f) by A168, NAT_1: 13;

                     [i, j] in ( Indices Aa) by A133, A148, A164, ZFMISC_1: 87;

                    hence thesis by A119, A170, A171;

                  end;

                end;

              end;

              

               A172: ( rng <*n1*>) = {n1} & (( rng f) \/ {n1}) c= (( Seg n) \/ {n1}) by A14, FINSEQ_1: 38, XBOOLE_1: 9;

              

               A173: (( Seg n) \/ {n1}) = ( Seg n1) by FINSEQ_1: 9;

              ( rng f) misses {n1} & <*n1*> is one-to-one by A14, FINSEQ_3: 14, XBOOLE_1: 63;

              hence thesis by A11, A12, A28, A29, A122, A124, A172, A173, A132, FINSEQ_1: 31, FINSEQ_3: 91, XREAL_1: 6, XXREAL_0: 2;

            end;

          end;

          

           A174: Q[ 0 ]

          proof

            assume 0 <= m();

            take A9 = A(), B9 = B();

            thus P[A9, B9] & r = ( the_rank_of A9) by A1;

            take f = ( <*> NAT );

            now

              let i, j such that

               A175: [i, j] in ( Indices A9) and i > ( len f) and

               A176: j <= 0 ;

              j in ( Seg ( width A9)) by A175, ZFMISC_1: 87;

              hence (A9 * (i,j)) = ( 0. K()) by A176;

            end;

            hence thesis;

          end;

          for n holds Q[n] from NAT_1:sch 2( A174, A5);

          then

          consider A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() such that

           A177: P[A9, B9] and

           A178: r = ( the_rank_of A9) and

           A179: ex f be FinSequence of NAT st (for i, j st [i, j] in ( Indices A9) & i > ( len f) & j <= m() holds (A9 * (i,j)) = ( 0. K())) & f is one-to-one & ( len f) <= m() & ( len f) <= n() & ( rng f) c= ( Seg m()) & for i, j st i in ( dom f) holds PP[f, i, j, A9];

          consider f be FinSequence of NAT such that

           A180: for i, j st [i, j] in ( Indices A9) & i > ( len f) & j <= m() holds (A9 * (i,j)) = ( 0. K()) and

           A181: f is one-to-one and ( len f) <= m() and

           A182: ( len f) <= n() and

           A183: ( rng f) c= ( Seg m()) and

           A184: for i, j st i in ( dom f) holds PP[f, i, j, A9] by A179;

          

           A185: ( len A9) = n() by A4, MATRIX_0: 23;

          take A9, B9;

          thus P[A9, B9] & r = ( the_rank_of A9) by A177, A178;

          

           A186: ( dom A9) = ( Seg ( len A9)) by FINSEQ_1:def 3;

          set L = ( len f);

          

           A187: ( Seg L) c= ( Seg n()) by A182, FINSEQ_1: 5;

          ( idseq L) is FinSequence of NAT & ( len ( idseq L)) = L by CARD_1:def 7, FINSEQ_2: 48;

          then

          reconsider idL = ( idseq L), F9 = f as Element of (L -tuples_on NAT ) by FINSEQ_2: 92;

          set S = ( Segm (A9,idL,F9));

          

           A188: ( dom f) = ( Seg L) by FINSEQ_1:def 3;

          set D = ( diagonal_of_Matrix S);

          

           A189: ( Indices S) = [:( Seg L), ( Seg L):] by MATRIX_0: 24;

          for k be Nat st k in ( dom D) holds (D . k) <> ( 0. K())

          proof

            

             A190: ( len D) = L by MATRIX_3:def 10;

            let k be Nat;

            assume k in ( dom D);

            then

             A191: k in ( Seg L) by A190, FINSEQ_1:def 3;

            then [k, k] in ( Indices S) by A189, ZFMISC_1: 87;

            

            then (S * (k,k)) = (A9 * ((idL . k),(f . k))) by MATRIX13:def 1

            .= (A9 * (k,(f . k))) by A191, FINSEQ_2: 49

            .= (A9 * (k,(f /. k))) by A188, A191, PARTFUN1:def 6;

            then (S * (k,k)) <> ( 0. K()) by A184, A188, A191;

            hence thesis by A191, MATRIX_3:def 10;

          end;

          then

           A192: ( Product D) <> ( 0. K()) by FVSUM_1: 82;

          now

            let i, j such that

             A193: [i, j] in ( Indices S);

            

             A194: i in ( Seg L) by A189, A193, ZFMISC_1: 87;

            assume i > j;

            then

             A195: i in (( dom f) \ {j}) by A188, A194, ZFMISC_1: 56;

            reconsider i9 = i, j9 = j as Element of NAT by ORDINAL1:def 12;

            

             A196: j in ( Seg L) by A189, A193, ZFMISC_1: 87;

            

            thus (S * (i,j)) = (A9 * ((idL . i9),(f . j9))) by A193, MATRIX13:def 1

            .= (A9 * (i,(f . j))) by A194, FINSEQ_2: 49

            .= (A9 * (i,(f /. j))) by A188, A196, PARTFUN1:def 6

            .= ( 0. K()) by A184, A188, A196, A195;

          end;

          then S is upper_triangular Matrix of L, K() by MATRIX_1:def 8;

          then

           A197: ( Det S) <> ( 0. K()) by A192, MATRIX13: 7;

          

           A198: ( len ( Segm (A9,( Seg L),( Seg ( width A9))))) = ( card ( Seg L)) by MATRIX_0:def 2;

          

           A199: ( width A9) = m() by A4, MATRIX_0: 23;

           [:( rng idL), ( rng F9):] c= ( Indices A9) by A183, A187, A185, A186, A199, ZFMISC_1: 96;

          then

           A200: ( the_rank_of A9) >= L by A197, MATRIX13: 76;

           A201:

          now

            set w0 = (( width A9) |-> ( 0. K()));

            let i such that

             A202: i in (( dom A9) \ ( Seg L));

            set LA = ( Line (A9,i));

             A203:

            now

               not i in ( Seg L) by A202, XBOOLE_0:def 5;

              then

               A204: i > L or i < 1;

              let j such that

               A205: 1 <= j and

               A206: j <= ( width A9);

              

               A207: j in ( Seg ( width A9)) by A205, A206;

              

               A208: i in ( dom A9) by A202, XBOOLE_0:def 5;

              then

               A209: [i, j] in ( Indices A9) by A207, ZFMISC_1: 87;

              

              thus (LA . j) = (A9 * (i,j)) by A207, MATRIX_0:def 7

              .= ( 0. K()) by A180, A186, A199, A206, A208, A209, A204, FINSEQ_1: 1

              .= (w0 . j) by A207, FINSEQ_2: 57;

            end;

            ( len LA) = ( width A9) & ( len w0) = ( width A9) by CARD_1:def 7;

            hence ( Line (A9,i)) = (( width A9) |-> ( 0. K())) by A203;

          end;

          then ( the_rank_of A9) = ( the_rank_of ( Segm (A9,( Seg L),( Seg ( width A9))))) by A187, A185, A186, Th11;

          then ( the_rank_of A9) <= ( card ( Seg L)) by A198, MATRIX13: 74;

          then

           A210: ( the_rank_of A9) <= L by FINSEQ_1: 57;

          then

           A211: r = L by A178, A200, XXREAL_0: 1;

          thus for i st i in ( dom A9) & i > r holds ( Line (A9,i)) = (m() |-> ( 0. K()))

          proof

            let i such that

             A212: i in ( dom A9) and

             A213: i > r;

             not i in ( Seg L) by A211, A213, FINSEQ_1: 1;

            then i in (( dom A9) \ ( Seg L)) by A212, XBOOLE_0:def 5;

            hence thesis by A199, A201;

          end;

          take f;

          thus thesis by A4, A181, A183, A184, A200, A210, MATRIX_0: 23, XXREAL_0: 1;

        end;

      end;

      then

      consider A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() such that

       A214: P[A9, B9] and

       A215: r = ( the_rank_of A9) and

       A216: for i st i in ( dom A9) & i > r holds ( Line (A9,i)) = (m() |-> ( 0. K())) and

       A217: ex f be FinSequence of NAT st ( len f) = ( the_rank_of A9) & f is one-to-one & ( rng f) c= ( Seg ( width A9)) & for i, j st i in ( dom f) holds PP[f, i, j, A9];

      consider f be FinSequence of NAT such that

       A218: ( len f) = ( the_rank_of A9) and

       A219: f is one-to-one and

       A220: ( rng f) c= ( Seg ( width A9)) and

       A221: for i, j st i in ( dom f) holds PP[f, i, j, A9] by A217;

       not 0 in ( rng f) by A220;

      then

      reconsider rngf = ( rng f) as without_zero finite Subset of NAT by A220, MEASURE6:def 2, XBOOLE_1: 1;

      

       A222: n() = 0 or n() > 0 ;

      set S = ( Segm (A9,( Seg ( card rngf)),rngf));

      

       A223: ( dom f) = ( Seg r) by A215, A218, FINSEQ_1:def 3;

      take A9, B9, rngf;

      ( len A9) = n() by MATRIX_0:def 2;

      then ( width A9) = 0 or ( width A9) = m() by A222, MATRIX_0: 23, MATRIX_0:def 3;

      then ( Seg ( width A9)) c= ( Seg m());

      hence rngf c= ( Seg m()) & r = ( the_rank_of A9) by A215, A220;

      (( dom f),rngf) are_equipotent by A219, WELLORD2:def 4;

      

      hence

       A224: ( card rngf) = ( card ( dom f)) by CARD_1: 5

      .= ( card ( Seg r)) by A215, A218, FINSEQ_1:def 3

      .= r by FINSEQ_1: 57;

      now

        let i, j;

        assume that

         A225: i in ( dom f) & j in ( dom f) and

         A226: i < j;

        (f . i) = (f /. i) & (f . j) = (f /. j) by A225, PARTFUN1:def 6;

        hence (f . i) < (f . j) by A221, A225, A226;

      end;

      then

       A227: ( Sgm rngf) = f by A219, A220, Th6;

      thus P[A9, B9] by A214;

      

       A228: ( card ( Seg ( card rngf))) = ( card rngf) by FINSEQ_1: 57;

      then

       A229: ( Indices S) = [:( Seg r), ( Seg r):] by A224, MATRIX_0: 24;

      now

        let i,j be Nat such that

         A230: i in ( Seg r) and

         A231: j in ( Seg r) and

         A232: i <> j;

        

         A233: i in (( dom f) \ {j}) by A223, A230, A232, ZFMISC_1: 56;

        

         A234: (( idseq r) . i) = i by A230, FINSEQ_2: 49;

         [i, j] in ( Indices S) by A229, A230, A231, ZFMISC_1: 87;

        

        then (S * (i,j)) = (A9 * ((( Sgm ( Seg r)) . i),(f . j))) by A224, A227, MATRIX13:def 1

        .= (A9 * (i,(f . j))) by A234, FINSEQ_3: 48

        .= (A9 * (i,(f /. j))) by A223, A231, PARTFUN1:def 6;

        hence (S * (i,j)) = ( 0. K()) by A221, A223, A231, A233;

      end;

      hence S is diagonal by A224, A228, MATRIX_7:def 2;

      thus for i st i in ( Seg ( card rngf)) holds (A9 * (i,(( Sgm rngf) /. i))) <> ( 0. K()) by A221, A224, A227, A223;

      thus for i st i in ( dom A9) & i > ( card rngf) holds ( Line (A9,i)) = (m() |-> ( 0. K())) by A216, A224;

      let i, j such that

       A235: i in ( Seg ( card rngf)) and

       A236: j in ( Seg ( width A9)) and

       A237: j < (( Sgm rngf) . i);

      j < (f /. i) by A224, A227, A223, A235, A237, PARTFUN1:def 6;

      hence thesis by A221, A224, A223, A235, A236;

    end;

    scheme :: MATRIX15:sch2

    GAUSS2 { K() -> Field , n,m,m9() -> Nat , A() -> Matrix of n(), m(), K() , B() -> Matrix of n(), m9(), K() , F( Matrix of n(), m9(), K(), Nat, Nat, Element of K()) -> Matrix of n(), m9(), K() , P[ set, set] } :

ex A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K(), N be without_zero finite Subset of NAT st N c= ( Seg m()) & ( the_rank_of A()) = ( the_rank_of A9) & ( the_rank_of A()) = ( card N) & P[A9, B9] & ( Segm (A9,( Seg ( card N)),N)) = ( 1. (K(),( card N))) & (for i st i in ( dom A9) & i > ( card N) holds ( Line (A9,i)) = (m() |-> ( 0. K()))) & for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A9)) & j < (( Sgm N) . i) holds (A9 * (i,j)) = ( 0. K())

      provided

       A1: P[A(), B()]

       and

       A2: for A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() st P[A9, B9] holds for a be Element of K() holds for i, j st j in ( dom A9) & (i = j implies a <> ( - ( 1_ K()))) holds P[( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j)))))), F(B9,i,j,a)];

      set r = ( the_rank_of A());

      

       A3: for A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() st P[A9, B9] holds for i, j st i <> j & j in ( dom A9) holds for a be Element of K() holds P[( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j)))))), F(B9,i,j,a)] by A2;

      consider A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K(), N be without_zero finite Subset of NAT such that

       A4: N c= ( Seg m()) and

       A5: r = ( the_rank_of A9) & r = ( card N) and

       A6: (P[A9, B9] & ( Segm (A9,( Seg ( card N)),N)) is diagonal & for i st i in ( Seg ( card N)) holds (A9 * (i,(( Sgm N) /. i))) <> ( 0. K())) & ((for i st i in ( dom A9) & i > ( card N) holds ( Line (A9,i)) = (m() |-> ( 0. K()))) & for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A9)) & j < (( Sgm N) . i) holds (A9 * (i,j)) = ( 0. K())) from GAUSS1( A1, A3);

      set ONE = ( 1. (K(),( card N)));

      

       A7: ( Indices ONE) = [:( Seg r), ( Seg r):] by A5, MATRIX_0: 24;

      defpred Q[ Nat] means $1 <= ( card N) implies ex A9 be Matrix of n(), m(), K(), B9 be Matrix of n(), m9(), K() st r = ( the_rank_of A9) & (for i st i in ( Seg ( card N)) & i <= $1 holds (A9 * (i,(( Sgm N) /. i))) = ( 1_ K())) & P[A9, B9] & ( Segm (A9,( Seg ( card N)),N)) is diagonal & (for i st i in ( Seg ( card N)) holds (A9 * (i,(( Sgm N) /. i))) <> ( 0. K())) & (for i st i in ( dom A9) & i > ( card N) holds ( Line (A9,i)) = (m() |-> ( 0. K()))) & (for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A9)) & j < (( Sgm N) . i) holds (A9 * (i,j)) = ( 0. K()));

      

       A8: for n st Q[n] holds Q[(n + 1)]

      proof

        set f = ( Sgm N);

        let n such that

         A9: Q[n];

        set n1 = (n + 1);

        assume

         A10: n1 <= ( card N);

        then

        consider A1 be Matrix of n(), m(), K(), A25 be Matrix of n(), m9(), K() such that

         A11: r = ( the_rank_of A1) and

         A12: for i st i in ( Seg ( card N)) & i <= n holds (A1 * (i,(( Sgm N) /. i))) = ( 1_ K()) and

         A13: P[A1, A25] and

         A14: ( Segm (A1,( Seg ( card N)),N)) is diagonal and

         A15: for i st i in ( Seg ( card N)) holds (A1 * (i,(( Sgm N) /. i))) <> ( 0. K()) and

         A16: for i st i in ( dom A1) & i > ( card N) holds ( Line (A1,i)) = (m() |-> ( 0. K())) and

         A17: for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A1)) & j < (( Sgm N) . i) holds (A1 * (i,j)) = ( 0. K()) by A9, NAT_1: 13;

        set L = ( Line (A1,n1));

        set LL = (L + ((((A1 * (n1,(f /. n1))) " ) - ( 1_ K())) * L));

        set R = ( RLine (A1,n1,LL));

        take R, FB = F(A25,n1,n1,-);

        

         A18: ( len A1) = n() by MATRIX_0:def 2;

        set SA = ( Segm (A1,( Seg ( card N)),N));

        set S = ( Segm (R,( Seg ( card N)),N));

        

         A19: ( len LL) = ( width A1) by CARD_1:def 7;

        r <= ( len A9) & ( len A9) = n() by A5, MATRIX13: 74, MATRIX_0:def 2;

        then

         A20: ( Seg r) c= ( Seg n()) by FINSEQ_1: 5;

        1 <= (1 + n) by NAT_1: 11;

        then

         A21: n1 in ( Seg ( card N)) by A10;

        then

         A22: n() <> 0 by A5, A20;

        then

         A23: ( width R) = m() by MATRIX_0: 23;

        

         A24: (((A1 * (n1,(( Sgm N) /. n1))) " ) - ( 1_ K())) <> ( - ( 1. K()))

        proof

          assume

           A25: (((A1 * (n1,(( Sgm N) /. n1))) " ) - ( 1_ K())) = ( - ( 1. K()));

          

           A26: ( 0. K()) = (( 1_ K()) + ( - ( 1_ K()))) by VECTSP_1: 19

          .= ((( 1_ K()) + ( - ( 1_ K()))) + ((A1 * (n1,(( Sgm N) /. n1))) " )) by A25, RLVECT_1:def 3

          .= (( 0. K()) + ((A1 * (n1,(( Sgm N) /. n1))) " )) by VECTSP_1: 19

          .= ((A1 * (n1,(( Sgm N) /. n1))) " ) by RLVECT_1:def 4;

          (A1 * (n1,(( Sgm N) /. n1))) <> ( 0. K()) by A15, A21;

          hence thesis by A26, VECTSP_1: 25;

        end;

        hence ( the_rank_of R) = r by A5, A11, A21, A20, A18, MATRIX13: 92;

        

         A27: ( width A1) = m() by A22, MATRIX_0: 23;

        

         A28: LL = ((( 1_ K()) * L) + ((((A1 * (n1,(f /. n1))) " ) - ( 1_ K())) * L)) by FVSUM_1: 57

        .= ((( 1_ K()) + (( - ( 1_ K())) + ((A1 * (n1,(f /. n1))) " ))) * L) by FVSUM_1: 55

        .= (((( 1_ K()) + ( - ( 1_ K()))) + ((A1 * (n1,(f /. n1))) " )) * L) by RLVECT_1:def 3

        .= ((( 0. K()) + ((A1 * (n1,(f /. n1))) " )) * L) by VECTSP_1: 19

        .= (((A1 * (n1,(f /. n1))) " ) * L) by RLVECT_1:def 4;

        

         A29: ( dom A1) = ( Seg ( len A1)) by FINSEQ_1:def 3;

        

         A30: ( rng ( Sgm N)) = N by A4, FINSEQ_1:def 13;

        

         A31: ( dom ( Sgm N)) = ( Seg ( card N)) by A4, FINSEQ_3: 40;

        thus

         A32: for i st i in ( Seg ( card N)) & i <= n1 holds (R * (i,(( Sgm N) /. i))) = ( 1_ K())

        proof

          let i;

          assume that

           A33: i in ( Seg ( card N)) and

           A34: i <= n1;

          

           A35: (f . i) = (f /. i) & (f . i) in ( rng f) by A31, A33, FUNCT_1:def 3, PARTFUN1:def 6;

          then

           A36: [i, (( Sgm N) /. i)] in ( Indices A1) by A4, A5, A30, A20, A29, A18, A27, A33, ZFMISC_1: 87;

          per cases by A34, NAT_1: 8;

            suppose

             A37: i <= n;

            then i < n1 by NAT_1: 13;

            

            hence (R * (i,(( Sgm N) /. i))) = (A1 * (i,(( Sgm N) /. i))) by A19, A36, MATRIX11:def 3

            .= ( 1_ K()) by A12, A33, A37;

          end;

            suppose

             A38: i = n1;

            

             A39: (A1 * (i,(f /. i))) <> ( 0. K()) by A15, A33;

            (R * (i,(f /. i))) = ((((A1 * (i,(f /. i))) " ) * L) . (f /. i)) & (L . (f /. i)) = (A1 * (i,(f /. i))) by A4, A30, A19, A28, A27, A35, A36, A38, MATRIX11:def 3, MATRIX_0:def 7;

            

            hence (R * (i,(f /. i))) = (((A1 * (i,(f /. i))) " ) * (A1 * (i,(f /. i)))) by A4, A30, A27, A35, FVSUM_1: 51

            .= ( 1_ K()) by A39, VECTSP_1:def 10;

          end;

        end;

        thus P[R, FB] by A2, A5, A13, A21, A20, A29, A18, A24;

        thus S is diagonal

        proof

          

           A40: ( Indices A1) = ( Indices R) by MATRIX_0: 26;

          let i, j such that

           A41: [i, j] in ( Indices S) and

           A42: (S * (i,j)) <> ( 0. K());

          reconsider I = i, J = j as Element of NAT by ORDINAL1:def 12;

          ( Indices S) = [:( Seg ( card ( Seg ( card N)))), ( Seg ( width S)):] by MATRIX_0: 25;

          then i in ( Seg ( card ( Seg ( card N)))) by A41, ZFMISC_1: 87;

          then i in ( Seg ( card ( card N))) by FINSEQ_1: 55;

          then

           A43: ( Sgm ( Seg ( card N))) = ( idseq ( card N)) & (( idseq ( card N)) . I) = I by FINSEQ_2: 49, FINSEQ_3: 48;

          then

           A44: (S * (i,j)) = (R * (I,(( Sgm N) . J))) by A41, MATRIX13:def 1;

          ( rng ( Sgm ( Seg ( card N)))) = ( Seg ( card N)) & [:( Seg ( card N)), N:] c= ( Indices A1) by A4, A5, A20, A29, A18, A27, FINSEQ_1:def 13, ZFMISC_1: 96;

          then

           A45: [I, (( Sgm N) . J)] in ( Indices A1) by A30, A41, A40, A43, MATRIX13: 17;

          then

           A46: (( Sgm N) . J) in ( Seg ( width A1)) by ZFMISC_1: 87;

          then

          reconsider SgmNJ = (( Sgm N) . j) as Element of NAT ;

          

           A47: ( Indices S) = ( Indices SA) by MATRIX_0: 26;

          per cases ;

            suppose

             A48: I = n1;

            thus i = j

            proof

              assume

               A49: i <> j;

              (R * (I,(( Sgm N) . J))) = ((((A1 * (n1,(f /. n1))) " ) * L) . SgmNJ) & (L . SgmNJ) = (A1 * (I,SgmNJ)) by A19, A28, A45, A46, A48, MATRIX11:def 3, MATRIX_0:def 7;

              

              then (R * (I,(( Sgm N) . J))) = (((A1 * (n1,(f /. n1))) " ) * (A1 * (I,SgmNJ))) by A46, FVSUM_1: 51

              .= (((A1 * (n1,(f /. n1))) " ) * (SA * (i,j))) by A41, A47, A43, MATRIX13:def 1

              .= (((A1 * (n1,(f /. n1))) " ) * ( 0. K())) by A14, A41, A47, A49

              .= ( 0. K());

              hence thesis by A41, A42, A43, MATRIX13:def 1;

            end;

          end;

            suppose I <> n1;

            

            then (R * (I,(( Sgm N) . J))) = (A1 * ((( Sgm ( Seg ( card N))) . I),(( Sgm N) . J))) by A19, A43, A45, MATRIX11:def 3

            .= (SA * (i,j)) by A41, A47, MATRIX13:def 1;

            hence thesis by A14, A41, A42, A47, A44;

          end;

        end;

        thus for i st i in ( Seg ( card N)) holds (R * (i,(( Sgm N) /. i))) <> ( 0. K())

        proof

          let i such that

           A50: i in ( Seg ( card N));

          (f . i) = (f /. i) & (f . i) in ( rng f) by A31, A50, FUNCT_1:def 3, PARTFUN1:def 6;

          then

           A51: [i, (( Sgm N) /. i)] in ( Indices A1) by A4, A5, A30, A20, A29, A18, A27, A50, ZFMISC_1: 87;

          per cases ;

            suppose i = n1;

            hence thesis by A32, A50;

          end;

            suppose i <> n1;

            then (R * (i,(( Sgm N) /. i))) = (A1 * (i,(( Sgm N) /. i))) by A19, A51, MATRIX11:def 3;

            hence thesis by A15, A50;

          end;

        end;

        thus for i st i in ( dom R) & i > ( card N) holds ( Line (R,i)) = (m() |-> ( 0. K()))

        proof

          

           A52: ( dom R) = ( Seg ( len R)) & ( len R) = n() by FINSEQ_1:def 3, MATRIX_0:def 2;

          let i such that

           A53: i in ( dom R) & i > ( card N);

          

          thus ( Line (R,i)) = ( Line (A1,i)) by A10, A53, A52, MATRIX11: 28

          .= (m() |-> ( 0. K())) by A16, A29, A18, A53, A52;

        end;

        let i, j such that

         A54: i in ( Seg ( card N)) and

         A55: j in ( Seg ( width R)) and

         A56: j < (( Sgm N) . i);

        

         A57: [i, j] in ( Indices A1) by A5, A20, A29, A18, A27, A23, A54, A55, ZFMISC_1: 87;

        per cases ;

          suppose i = n1;

          then (R * (i,j)) = ((((A1 * (n1,(f /. n1))) " ) * L) . j) & (L . j) = (A1 * (i,j)) by A19, A28, A27, A23, A55, A57, MATRIX11:def 3, MATRIX_0:def 7;

          

          hence (R * (i,j)) = (((A1 * (n1,(f /. n1))) " ) * (A1 * (i,j))) by A27, A23, A55, FVSUM_1: 51

          .= (((A1 * (n1,(f /. n1))) " ) * ( 0. K())) by A17, A27, A23, A54, A55, A56

          .= ( 0. K());

        end;

          suppose i <> n1;

          

          hence (R * (i,j)) = (A1 * (i,j)) by A19, A57, MATRIX11:def 3

          .= ( 0. K()) by A17, A27, A23, A54, A55, A56;

        end;

      end;

      for i st i in ( Seg ( card N)) & i <= 0 holds (A9 * (i,(( Sgm N) /. i))) = ( 1_ K());

      then

       A58: Q[ 0 ] by A5, A6;

      for n holds Q[n] from NAT_1:sch 2( A58, A8);

      then

      consider A be Matrix of n(), m(), K(), B be Matrix of n(), m9(), K() such that

       A59: r = ( the_rank_of A) and

       A60: for i st i in ( Seg ( card N)) & i <= ( card N) holds (A * (i,(( Sgm N) /. i))) = ( 1_ K()) and

       A61: P[A, B] and

       A62: ( Segm (A,( Seg ( card N)),N)) is diagonal and for i st i in ( Seg ( card N)) holds (A * (i,(( Sgm N) /. i))) <> ( 0. K()) and

       A63: (for i st i in ( dom A) & i > ( card N) holds ( Line (A,i)) = (m() |-> ( 0. K()))) & for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A)) & j < (( Sgm N) . i) holds (A * (i,j)) = ( 0. K());

      take A, B, N;

      thus N c= ( Seg m()) & r = ( the_rank_of A) & r = ( card N) & P[A, B] by A4, A5, A59, A61;

      set S = ( Segm (A,( Seg ( card N)),N));

      

       A64: ( card ( Seg ( card N))) = ( card N) by FINSEQ_1: 57;

      then

       A65: ( Indices ONE) = ( Indices S) by MATRIX_0: 26;

      now

        

         A66: ( dom ( Sgm N)) = ( Seg r) by A4, A5, FINSEQ_3: 40;

        let i, j such that

         A67: [i, j] in ( Indices ONE);

        

         A68: j in ( Seg r) by A7, A67, ZFMISC_1: 87;

        reconsider i9 = i, j9 = j as Element of NAT by ORDINAL1:def 12;

        

         A69: i in ( Seg r) by A7, A67, ZFMISC_1: 87;

        then

         A70: (( idseq r) . i9) = i9 by FINSEQ_2: 49;

        

         A71: i <= r by A69, FINSEQ_1: 1;

        

         A72: (S * (i,j)) = (A * ((( Sgm ( Seg r)) . i9),(( Sgm N) . j9))) by A5, A65, A67, MATRIX13:def 1

        .= (A * (i9,(( Sgm N) . j9))) by A70, FINSEQ_3: 48

        .= (A * (i9,(( Sgm N) /. j9))) by A68, A66, PARTFUN1:def 6;

        now

          per cases ;

            suppose

             A73: i9 = j9;

            

            hence (S * (i,j)) = ( 1_ K()) by A5, A60, A69, A71, A72

            .= (ONE * (i,j)) by A67, A73, MATRIX_1:def 3;

          end;

            suppose

             A74: i9 <> j9;

            

            hence (S * (i,j)) = ( 0. K()) by A62, A65, A67

            .= (ONE * (i,j)) by A67, A74, MATRIX_1:def 3;

          end;

        end;

        hence (S * (i,j)) = (ONE * (i,j));

      end;

      hence thesis by A63, A64, MATRIX_0: 27;

    end;

    begin

    theorem :: MATRIX15:57

    

     Th57: for A,B be Matrix of K st ( len A) = ( len B) & (( width A) = 0 implies ( width B) = 0 ) holds ( the_rank_of A) = ( the_rank_of (A ^^ B)) iff ( Solutions_of (A,B)) is non empty

    proof

      let A,B be Matrix of K such that

       A1: ( len A) = ( len B) and

       A2: ( width A) = 0 implies ( width B) = 0 ;

      set wB = ( width B);

      set L = ( len A);

      reconsider B9 = B as Matrix of L, wB, K by A1, MATRIX_0: 51;

      set wA = ( width A);

      reconsider A9 = A as Matrix of L, wA, K by MATRIX_0: 51;

      deffunc F( Matrix of L, wB, K, Nat, Nat, Element of K) = ( RLine ($1,$2,(( Line ($1,$2)) + ($4 * ( Line ($1,$3))))));

      defpred P[ set, set] means for A1 be Matrix of L, wA, K, B1 be Matrix of L, wB, K st A1 = $1 & B1 = $2 holds ( the_rank_of (A9 ^^ B9)) = ( the_rank_of (A1 ^^ B1)) & ( Solutions_of (A9,B9)) = ( Solutions_of (A1,B1));

      

       A3: for A1 be Matrix of L, wA, K, B1 be Matrix of L, wB, K st P[A1, B1] holds for a be Element of K holds for i, j st j in ( dom A1) & (i = j implies a <> ( - ( 1_ K))) holds P[( RLine (A1,i,(( Line (A1,i)) + (a * ( Line (A1,j)))))), F(B1,i,j,a)]

      proof

        let A1 be Matrix of L, wA, K, B1 be Matrix of L, wB, K such that

         A4: P[A1, B1];

        let a be Element of K;

        let i, j such that

         A5: j in ( dom A1) and

         A6: i = j implies a <> ( - ( 1_ K));

        set LAj = ( Line (A1,j));

        set LAi = ( Line (A1,i));

        set RA = ( RLine (A1,i,(LAi + (a * LAj))));

        

         A7: ( dom A1) = ( Seg ( len A1)) by FINSEQ_1:def 3

        .= ( Seg L) by MATRIX_0:def 2;

        then

         A8: ( Solutions_of (A1,B1)) = ( Solutions_of (RA, F(B1,i,j,a))) by A5, A6, Th40;

        set RB = F(B1,i,j,a);

        set LBj = ( Line (B1,j));

        set LBi = ( Line (B1,i));

        

         A9: ( len A1) = L & ( len B1) = L by MATRIX_0:def 2;

        per cases ;

          suppose not i in ( Seg L);

          then RA = A1 & RB = B1 by A9, MATRIX13: 40;

          hence thesis by A4;

        end;

          suppose

           A10: i in ( Seg L);

          

           A11: ( len (A1 ^^ B1)) = L by MATRIX_0:def 2;

          

           A12: ( len (a * LAj)) = ( width A1) & ( len (a * LBj)) = ( width B1) by CARD_1:def 7;

          

           A13: ( len LAi) = ( width A1) & ( len LBi) = ( width B1) by CARD_1:def 7;

          ( len (LAi + (a * LAj))) = ( width A1) & ( len (LBi + (a * LBj))) = ( width B1) by CARD_1:def 7;

          

          then (RA ^^ RB) = ( RLine ((A1 ^^ B1),i,((LAi + (a * LAj)) ^ (LBi + (a * LBj))))) by Th18

          .= ( RLine ((A1 ^^ B1),i,((LAi ^ LBi) + ((a * LAj) ^ (a * LBj))))) by A13, A12, Th3

          .= ( RLine ((A1 ^^ B1),i,((LAi ^ LBi) + (a * (LAj ^ LBj))))) by Th4

          .= ( RLine ((A1 ^^ B1),i,(( Line ((A1 ^^ B1),i)) + (a * (LAj ^ LBj))))) by A10, Th15

          .= ( RLine ((A1 ^^ B1),i,(( Line ((A1 ^^ B1),i)) + (a * ( Line ((A1 ^^ B1),j)))))) by A5, A7, Th15;

          then ( the_rank_of (RA ^^ RB)) = ( the_rank_of (A1 ^^ B1)) by A5, A6, A7, A11, MATRIX13: 92;

          hence thesis by A4, A8;

        end;

      end;

      

       A14: P[A9, B9];

      consider A1 be Matrix of L, wA, K, B1 be Matrix of L, wB, K, N such that

       A15: N c= ( Seg wA) and

       A16: ( the_rank_of A9) = ( the_rank_of A1) & ( the_rank_of A9) = ( card N) and

       A17: P[A1, B1] & ( Segm (A1,( Seg ( card N)),N)) = ( 1. (K,( card N))) and

       A18: for i st i in ( dom A1) & i > ( card N) holds ( Line (A1,i)) = (wA |-> ( 0. K)) and for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A1)) & j < (( Sgm N) . i) holds (A1 * (i,j)) = ( 0. K) from GAUSS2( A14, A3);

      per cases ;

        suppose

         A19: L = 0 ;

        then ( len (A9 ^^ B9)) = 0 & ( the_rank_of A) = 0 by MATRIX13: 74, MATRIX_0:def 2;

        hence thesis by A19, Th51, MATRIX13: 74;

      end;

        suppose

         A20: L > 0 ;

        per cases ;

          suppose

           A21: N <> {} ;

          set SN = ( Seg ( card N));

          set SS = (( Seg L) \ SN);

          

           A22: ( card SN) = ( card N) by FINSEQ_1: 57;

          reconsider P2 = (( Sgm SN) " SN), Q2 = (( Sgm ( Seg wA)) " N) as without_zero finite Subset of NAT by MATRIX13: 53;

          ( dom ( Sgm SN)) = ( Seg ( card SN)) & ( rng ( Sgm SN)) = SN by FINSEQ_1:def 13, FINSEQ_3: 40;

          then

           A23: P2 = SN by A22, RELAT_1: 134;

          ( rng ( Sgm ( Seg wA))) = ( Seg wA) by FINSEQ_1:def 13;

          then

           A24: (( Sgm ( Seg wA)) .: Q2) = N by A15, FUNCT_1: 77;

          Q2 c= ( dom ( Sgm ( Seg wA))) & ( Sgm ( Seg wA)) is one-to-one by FINSEQ_3: 92, RELAT_1: 132;

          then (N,Q2) are_equipotent by A24, CARD_1: 33;

          then

           A25: ( dom ( Sgm ( Seg wA))) = ( Seg ( card ( Seg wA))) & ( card N) = ( card Q2) by CARD_1: 5, FINSEQ_3: 40;

          

           A26: ( Seg ( len A1)) = ( dom A1) & ( len A1) = L by A20, FINSEQ_1:def 3, MATRIX_0: 23;

          

           A27: ( width A1) = wA by A20, MATRIX_0: 23;

           A28:

          now

            let i such that

             A29: i in SS;

             not i in SN by A29, XBOOLE_0:def 5;

            then

             A30: i < 1 or i > ( card N);

            i in ( Seg L) by A29, XBOOLE_0:def 5;

            hence ( Line (A1,i)) = (( width A1) |-> ( 0. K)) by A18, A26, A27, A30, FINSEQ_1: 1;

          end;

          ( card N) <= L by A16, MATRIX13: 74;

          then

           A31: ( Seg ( card N)) c= ( Seg L) by FINSEQ_1: 5;

          

           A32: ( len B1) = L by A20, MATRIX_0: 23;

          

           A33: ( Seg ( len B1)) = ( dom B1) & ( width B1) = wB by A20, FINSEQ_1:def 3, MATRIX_0: 23;

          thus ( the_rank_of A) = ( the_rank_of (A ^^ B)) implies ( Solutions_of (A,B)) is non empty

          proof

            assume ( the_rank_of A) = ( the_rank_of (A ^^ B));

            then ( the_rank_of A1) = ( the_rank_of (A1 ^^ B1)) by A16, A17;

            then for i st i in (( dom A1) \ ( Seg ( card N))) holds ( Line (A1,i)) = (( width A1) |-> ( 0. K)) & ( Line (B1,i)) = (( width B1) |-> ( 0. K)) by A26, A32, A28, Th24, XBOOLE_1: 36;

            then

             A34: ( Solutions_of (A1,B1)) = ( Solutions_of (( Segm (A1,SN,( Seg wA))),( Segm (B1,SN,( Seg wB))))) by A21, A31, A26, A32, A27, A33, Th45;

            ( Segm (( Segm (A1,SN,( Seg wA))),P2,Q2)) = ( 1. (K,( card N))) by A15, A17, MATRIX13: 56;

            then ex X be Matrix of ( card ( Seg wA)), ( card ( Seg wB)), K st ( Segm (X,(( Seg ( card ( Seg wA))) \ Q2),( Seg ( card ( Seg wB))))) = ( 0. (K,(( card ( Seg wA)) -' ( card SN)),( card ( Seg wB)))) & ( Segm (X,Q2,( Seg ( card ( Seg wB))))) = ( Segm (B1,SN,( Seg wB))) & X in ( Solutions_of (( Segm (A1,SN,( Seg wA))),( Segm (B1,SN,( Seg wB))))) by A21, A22, A23, A25, Th50, RELAT_1: 132;

            hence thesis by A17, A34;

          end;

          

           A35: (( Seg L) \ ( Seg ( card N))) c= ( Seg L) by XBOOLE_1: 36;

          thus ( Solutions_of (A,B)) is non empty implies ( the_rank_of A) = ( the_rank_of (A ^^ B))

          proof

            assume ( Solutions_of (A,B)) is non empty;

            then ( Solutions_of (A1,B1)) is non empty by A17;

            then

            consider x be object such that

             A36: x in ( Solutions_of (A1,B1));

            set AB = (A1 ^^ B1);

            

             A37: ( len ( Segm (AB,SN,( Seg ( width AB))))) = ( card SN) by MATRIX_0:def 2;

            

             A38: ( dom AB) = ( Seg ( len AB)) & ( len AB) = L by A20, FINSEQ_1:def 3, MATRIX_0: 23;

            reconsider x as Matrix of wA, wB, K by A20, A36, Th53;

            

             A39: ( the_rank_of ( Segm (AB,( Seg L),( Seg ( width A1))))) = ( card N) by A16, Th19;

            

             A40: ( width AB) = (( width A1) + ( width B1)) by A20, MATRIX_0: 23;

            now

              let i such that

               A41: i in SS;

              

               A42: ( Line (A1,i)) = (( width A1) |-> ( 0. K)) by A28, A41;

              

               A43: x in ( Solutions_of (A1,B1)) & i in ( dom A1) & ( Line (A1,i)) = (( width A1) |-> ( 0. K)) implies ( Line (B1,i)) = (( width B1) |-> ( 0. K)) by Th41;

              

              thus ( Line (AB,i)) = (( Line (A1,i)) ^ ( Line (B1,i))) by A35, A41, Th15

              .= (( width AB) |-> ( 0. K)) by A26, A35, A36, A40, A41, A42, A43, FINSEQ_2: 123;

            end;

            then ( the_rank_of ( Segm (AB,SN,( Seg ( width AB))))) = ( the_rank_of AB) by A31, A38, Th11;

            then ( the_rank_of AB) <= ( card SN) by A37, MATRIX13: 74;

            then

             A44: ( the_rank_of AB) <= ( card N) by FINSEQ_1: 57;

            ( width A1) <= ( width AB) by A40, NAT_1: 11;

            then ( Seg ( width A1)) c= ( Seg ( width AB)) by FINSEQ_1: 5;

            then [:( Seg L), ( Seg ( width A1)):] c= ( Indices AB) by A38, ZFMISC_1: 95;

            then ( card N) <= ( the_rank_of AB) by A39, MATRIX13: 79;

            then ( the_rank_of AB) = ( card N) by A44, XXREAL_0: 1;

            hence thesis by A16, A17;

          end;

        end;

          suppose

           A45: N = {} ;

          set ZERO = ( 0. (K,L,wA));

           A46:

          now

            let i such that

             A47: 1 <= i & i <= L;

            

             A48: ( dom A1) = ( Seg ( len A1)) & ( len A1) = L by FINSEQ_1:def 3, MATRIX_0:def 2;

            

             A49: i in ( Seg L) by A47;

            

            hence (ZERO . i) = (wA |-> ( 0. K)) by FINSEQ_2: 57

            .= ( Line (A1,i)) by A18, A45, A49, A48

            .= (A1 . i) by A49, MATRIX_0: 52;

          end;

          

           A50: ( len ZERO) = L by A20, MATRIX_0: 23;

          

           A51: ( width A1) = wA by A20, MATRIX_0: 23;

          ( len A1) = L by A20, MATRIX_0: 23;

          then ZERO = A1 by A50, A46;

          then

           A52: ( the_rank_of A) = 0 by A16, A50, A51, MATRIX13: 95;

          then

           A53: ZERO = A by MATRIX13: 95;

          

           A54: ( Indices (A9 ^^ B9)) = [:( Seg L), ( Seg (wA + wB)):] by A20, MATRIX_0: 23;

          thus ( the_rank_of A) = ( the_rank_of (A ^^ B)) implies ( Solutions_of (A,B)) is non empty

          proof

            set x = the Matrix of wA, wB, K;

            assume

             A55: ( the_rank_of A) = ( the_rank_of (A ^^ B));

            (( Seg (wA + wB)) \ ( Seg wA)) c= ( Seg (wA + wB)) by XBOOLE_1: 36;

            then

             A56: [:( Seg L), (( Seg (wA + wB)) \ ( Seg wA)):] c= ( Indices (A ^^ B)) by A54, ZFMISC_1: 95;

            ( Segm ((A9 ^^ B9),( Seg L),(( Seg (wA + wB)) \ ( Seg wA)))) = B by Th19;

            then 0 = ( the_rank_of B) by A52, A55, A56, MATRIX13: 79;

            then

             A57: B = ( 0. (K,L,wB)) by A1, MATRIX13: 95;

            then wA = 0 & wB = 0 or ( Solutions_of (A9,B9)) = the set of all X where X be Matrix of wA, wB, K by A2, A20, A53, Th54;

            then ( Solutions_of (A9,B9)) = { {} } or x in ( Solutions_of (A9,B9)) by A53, A57, Th56;

            hence thesis;

          end;

          

           A58: ( Indices B9) = [:( Seg L), ( Seg wB):] by A20, MATRIX_0: 23;

          

           A59: (wA + wB) = ( width (A9 ^^ B9)) by A20, MATRIX_0: 23;

          

           A60: ( Indices ZERO) = [:( Seg L), ( Seg wA):] by A20, MATRIX_0: 23;

          thus ( Solutions_of (A,B)) is non empty implies ( the_rank_of A) = ( the_rank_of (A ^^ B))

          proof

            assume

             A61: ( Solutions_of (A,B)) is non empty;

            assume ( the_rank_of A) <> ( the_rank_of (A ^^ B));

            then

            consider i, j such that

             A62: [i, j] in ( Indices (A9 ^^ B9)) and

             A63: ((A9 ^^ B9) * (i,j)) <> ( 0. K) by A52, MATRIX13: 94;

            

             A64: j in ( Seg (wA + wB)) by A59, A62, ZFMISC_1: 87;

            

             A65: ( dom ( Line ((A9 ^^ B9),i))) = ( Seg (wA + wB)) by A59, FINSEQ_2: 124;

            

             A66: ( len ( Line (A9,i))) = wA by CARD_1:def 7;

            

             A67: ( dom ( Line (B9,i))) = ( Seg wB) by FINSEQ_2: 124;

            

             A68: ( dom ( Line (A9,i))) = ( Seg wA) by FINSEQ_2: 124;

            

             A69: i in ( Seg L) by A54, A62, ZFMISC_1: 87;

            then

             A70: ( Line ((A9 ^^ B9),i)) = (( Line (A9,i)) ^ ( Line (B9,i))) by Th15;

            per cases by A64, A66, A65, A70, FINSEQ_1: 25;

              suppose

               A71: j in ( dom ( Line (A9,i)));

              then

               A72: [i, j] in ( Indices ZERO) by A60, A69, A68, ZFMISC_1: 87;

              ((A9 ^^ B9) * (i,j)) = (( Line ((A9 ^^ B9),i)) . j) by A59, A64, MATRIX_0:def 7

              .= (( Line (A9,i)) . j) by A70, A71, FINSEQ_1:def 7

              .= (A9 * (i,j)) by A68, A71, MATRIX_0:def 7

              .= ( 0. K) by A53, A72, MATRIX_3: 1;

              hence thesis by A63;

            end;

              suppose ex n st n in ( dom ( Line (B9,i))) & j = (wA + n);

              then

              consider n such that

               A73: n in ( dom ( Line (B9,i))) and

               A74: j = (wA + n);

              

               A75: [i, n] in ( Indices B) by A58, A69, A67, A73, ZFMISC_1: 87;

              

               A76: B = ( 0. (K,L,wB)) by A53, A61, Th52;

              ((A9 ^^ B9) * (i,j)) = (( Line ((A9 ^^ B9),i)) . j) by A59, A64, MATRIX_0:def 7

              .= (( Line (B9,i)) . n) by A66, A70, A73, A74, FINSEQ_1:def 7

              .= (B9 * (i,n)) by A67, A73, MATRIX_0:def 7

              .= ( 0. K) by A75, A76, MATRIX_3: 1;

              hence thesis by A63;

            end;

          end;

        end;

      end;

    end;

    begin

    definition

      let K;

      let A be Matrix of K;

      let b be FinSequence of K;

      :: MATRIX15:def4

      func Solutions_of (A,b) -> set equals { f : ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx b))) };

      coherence ;

    end

    theorem :: MATRIX15:58

    

     Th58: for x st x in ( Solutions_of (A,( ColVec2Mx b))) holds ex f st x = ( ColVec2Mx f) & ( len f) = ( width A)

    proof

      let x such that

       A1: x in ( Solutions_of (A,( ColVec2Mx b)));

      consider X such that

       A2: X = x and

       A3: ( len X) = ( width A) and

       A4: ( width X) = ( width ( ColVec2Mx b)) and (A * X) = ( ColVec2Mx b) by A1;

      per cases ;

        suppose

         A5: ( len X) = 0 ;

        take f = ( 0 |-> ( 0. K));

        ( len ( ColVec2Mx f)) = 0 by MATRIX_0:def 2;

        hence thesis by A2, A3, A5, CARD_2: 64;

      end;

        suppose

         A6: ( len X) > 0 ;

        take ( Col (X,1));

        

         A7: ( len A) = ( len ( ColVec2Mx b)) by A1, Th33;

        ( len A) <> 0 by A3, A6, MATRIX_0:def 3;

        then ( len b) > 0 by A7, MATRIX_0:def 2;

        then ( width X) = 1 by A4, MATRIX_0: 23;

        hence thesis by A2, A3, A6, Th26, MATRIX_0:def 8;

      end;

    end;

    theorem :: MATRIX15:59

    

     Th59: for f st ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx b))) holds ( len f) = ( width A)

    proof

      let f;

      assume ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx b)));

      then

       A1: ex g st ( ColVec2Mx f) = ( ColVec2Mx g) & ( len g) = ( width A) by Th58;

      ( len ( ColVec2Mx f)) = ( len f) by MATRIX_0:def 2;

      hence thesis by A1, MATRIX_0:def 2;

    end;

    definition

      let K;

      let A be Matrix of K;

      let b be FinSequence of K;

      :: original: Solutions_of

      redefine

      func Solutions_of (A,b) -> Subset of (( width A) -VectSp_over K) ;

      coherence

      proof

        ( Solutions_of (A,b)) c= the carrier of (( width A) -VectSp_over K)

        proof

          let x be object;

          assume x in ( Solutions_of (A,b));

          then

          consider f such that

           A1: x = f and

           A2: ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx b)));

          ( len f) = ( width A) by A2, Th59;

          then (( width A) -tuples_on the carrier of K) = the carrier of (( width A) -VectSp_over K) & f is Element of (( width A) -tuples_on the carrier of K) by FINSEQ_2: 92, MATRIX13: 102;

          hence thesis by A1;

        end;

        hence thesis;

      end;

    end

    registration

      let K;

      let A be Matrix of K;

      let k be Element of NAT ;

      cluster ( Solutions_of (A,(k |-> ( 0. K)))) -> linearly-closed;

      coherence

      proof

        set V = (( width A) -VectSp_over K);

        set k0 = (k |-> ( 0. K));

        set S = ( Solutions_of (A,k0));

        

         A1: ( ColVec2Mx k0) = ( 0. (K,k,1)) by Th32;

         A2:

        now

          let a be Element of K, v be Element of V;

          assume v in S;

          then

          consider f such that

           A3: v = f and

           A4: ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx k0)));

          reconsider f as Element of (( width A) -tuples_on the carrier of K) by A3, MATRIX13: 102;

          now

            per cases ;

              suppose k = 0 ;

              then ( len (a * ( 0. (K,k,1)))) = ( len ( 0. (K,k,1))) & ( 0. (K,k,1)) = {} by MATRIX_3:def 5;

              hence ( 0. (K,k,1)) = (a * ( 0. (K,k,1)));

            end;

              suppose

               A5: k > 0 ;

              then

               A6: ( len ( 0. (K,k,1))) = k & ( width ( 0. (K,k,1))) = 1 by MATRIX_0: 23;

              

              hence (a * ( 0. (K,k,1))) = (a * (( 0. K) * ( 0. (K,k,1)))) by A5, MATRIX_5: 24

              .= ((a * ( 0. K)) * ( 0. (K,k,1))) by MATRIX_5: 11

              .= (( 0. K) * ( 0. (K,k,1)))

              .= ( 0. (K,k,1)) by A5, A6, MATRIX_5: 24;

            end;

          end;

          then (a * ( ColVec2Mx f)) in ( Solutions_of (A,( 0. (K,k,1)))) by A1, A4, Th35;

          then ( ColVec2Mx (a * f)) in ( Solutions_of (A,( 0. (K,k,1)))) by Th30;

          then (a * f) in ( Solutions_of (A,k0)) by A1;

          hence (a * v) in S by A3, MATRIX13: 102;

        end;

        now

          let v,u be Element of V such that

           A7: v in S and

           A8: u in S;

          consider f such that

           A9: v = f and

           A10: ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx k0))) by A7;

          consider g such that

           A11: u = g and

           A12: ( ColVec2Mx g) in ( Solutions_of (A,( ColVec2Mx k0))) by A8;

          

           A13: ( len g) = ( width A) by A12, Th59;

          reconsider f, g as Element of (( width A) -tuples_on the carrier of K) by A9, A11, MATRIX13: 102;

          (( ColVec2Mx f) + ( ColVec2Mx g)) in ( Solutions_of (A,(( 0. (K,k,1)) + ( 0. (K,k,1))))) by A1, A10, A12, Th37;

          then (( ColVec2Mx f) + ( ColVec2Mx g)) in ( Solutions_of (A,( 0. (K,k,1)))) by MATRIX_3: 4;

          then ( ColVec2Mx (f + g)) in ( Solutions_of (A,( 0. (K,k,1)))) by A10, A13, Th28, Th59;

          then (f + g) in S by A1;

          hence (v + u) in S by A9, A11, MATRIX13: 102;

        end;

        hence thesis by A2, VECTSP_4:def 1;

      end;

    end

    theorem :: MATRIX15:60

    

     Th60: ( Solutions_of (A,b)) is non empty & ( width A) = 0 implies ( len A) = 0

    proof

      set S = ( Solutions_of (A,b));

      assume that

       A1: S is non empty and

       A2: ( width A) = 0 ;

      consider x be object such that

       A3: x in S by A1;

      consider f such that x = f and

       A4: ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx b))) by A3;

      consider X such that ( ColVec2Mx f) = X and

       A5: ( len X) = ( width A) and ( width X) = ( width ( ColVec2Mx b)) and

       A6: (A * X) = ( ColVec2Mx b) by A4;

      ( width (A * X)) = ( width X) by A5, MATRIX_3:def 4

      .= 0 by A2, A5, MATRIX_0:def 3;

      

      hence 0 = ( len b) by A6, MATRIX_0: 23

      .= ( len ( ColVec2Mx b)) by MATRIX_0:def 2

      .= ( len A) by A4, Th33;

    end;

    theorem :: MATRIX15:61

    

     Th61: ( width A) <> 0 or ( len A) = 0 implies ( Solutions_of (A,(( len A) |-> ( 0. K)))) is non empty

    proof

      set L = (( len A) |-> ( 0. K));

      

       A1: ( len L) = ( len A) by CARD_1:def 7;

      reconsider A9 = A as Matrix of ( len A), ( width A), K by MATRIX_0: 51;

      assume

       A2: ( width A) <> 0 or ( len A) = 0 ;

      per cases by A2;

        suppose ( len A) = 0 ;

        then ( Solutions_of (A9,( ColVec2Mx L))) = { {} } by A1, Th51;

        then

         A3: {} in ( Solutions_of (A9,( ColVec2Mx L))) by TARSKI:def 1;

        then

        consider f such that

         A4: {} = ( ColVec2Mx f) and ( len f) = ( width A) by Th58;

        f in ( Solutions_of (A,L)) by A3, A4;

        hence thesis;

      end;

        suppose

         A5: ( width A) > 0 ;

        ( ColVec2Mx L) = ( 0. (K,( len A),1)) by Th32;

        then ( len ( ColVec2Mx L)) = ( len L) & ( the_rank_of A) = ( the_rank_of (A ^^ ( ColVec2Mx L))) by Th23, MATRIX_0:def 2;

        then ( Solutions_of (A,( ColVec2Mx L))) is non empty by A1, A5, Th57;

        then

        consider x be object such that

         A6: x in ( Solutions_of (A,( ColVec2Mx L)));

        consider f such that

         A7: x = ( ColVec2Mx f) and ( len f) = ( width A) by A6, Th58;

        f in ( Solutions_of (A,L)) by A6, A7;

        hence thesis;

      end;

    end;

    definition

      let K;

      let A be Matrix of K;

      assume

       A1: ( width A) = 0 implies ( len A) = 0 ;

      :: MATRIX15:def5

      func Space_of_Solutions_of (A) -> strict Subspace of (( width A) -VectSp_over K) means

      : Def5: the carrier of it = ( Solutions_of (A,(( len A) |-> ( 0. K))));

      existence

      proof

        ( Solutions_of (A,(( len A) |-> ( 0. K)))) is non empty by A1, Th61;

        hence thesis by VECTSP_4: 34;

      end;

      uniqueness by VECTSP_4: 29;

    end

    theorem :: MATRIX15:62

    for A be Matrix of K, b be FinSequence of K st ( Solutions_of (A,b)) is non empty holds ( Solutions_of (A,b)) is Coset of ( Space_of_Solutions_of A)

    proof

      let A be Matrix of K, b be FinSequence of K;

      set V = (( width A) -VectSp_over K);

      reconsider B = b as Element of (( len b) -tuples_on the carrier of K) by FINSEQ_2: 92;

      set CB = ( ColVec2Mx B);

      assume ( Solutions_of (A,b)) is non empty;

      then

      consider x be object such that

       A1: x in ( Solutions_of (A,B));

      consider f such that x = f and

       A2: ( ColVec2Mx f) in ( Solutions_of (A,CB)) by A1;

      set Cf = ( ColVec2Mx f);

      

       A3: ( len f) = ( width A) by A2, Th59;

      then

      reconsider f as Element of (( width A) -tuples_on the carrier of K) by FINSEQ_2: 92;

      reconsider F = f as Element of V by MATRIX13: 102;

      

       A4: ( len CB) = ( len B) & ( len A) = ( len CB) by A2, Th33, MATRIX_0:def 2;

      ( width A) = 0 implies ( len A) = 0 by A1, Th60;

      then

       A5: the carrier of ( Space_of_Solutions_of A) = ( Solutions_of (A,(( len A) |-> ( 0. K)))) by Def5;

      

       A6: ( Solutions_of (A,b)) c= (F + ( Space_of_Solutions_of A))

      proof

        ( len B) = ( len (( - ( 1_ K)) * B)) & (( - ( 1_ K)) * CB) = ( ColVec2Mx (( - ( 1_ K)) * B)) by Th30, CARD_1:def 7;

        

        then

         A7: (CB + (( - ( 1_ K)) * CB)) = ( ColVec2Mx (B + (( - ( 1_ K)) * B))) by Th28

        .= ( ColVec2Mx (B + ( - B))) by FVSUM_1: 59

        .= ( ColVec2Mx (( len A) |-> ( 0. K))) by A4, FVSUM_1: 26;

        let y be object;

        assume y in ( Solutions_of (A,b));

        then

        consider g such that

         A8: y = g and

         A9: ( ColVec2Mx g) in ( Solutions_of (A,CB));

        ( len g) = ( width A) by A9, Th59;

        then

        reconsider g as Element of (( width A) -tuples_on the carrier of K) by FINSEQ_2: 92;

        set Cg = ( ColVec2Mx g);

        reconsider GF = (g + (( - ( 1_ K)) * f)) as Element of V by MATRIX13: 102;

        

         A10: ( len f) = ( len (( - ( 1_ K)) * f)) by A3, CARD_1:def 7;

        ( width CB) = ( width (( - ( 1_ K)) * CB)) & (( - ( 1_ K)) * Cf) in ( Solutions_of (A,(( - ( 1_ K)) * CB))) by A2, Th35, MATRIX_3:def 5;

        then

         A11: (Cg + (( - ( 1_ K)) * Cf)) in ( Solutions_of (A,( ColVec2Mx (( len A) |-> ( 0. K))))) by A9, A7, Th37;

        (Cg + (( - ( 1_ K)) * Cf)) = (Cg + ( ColVec2Mx (( - ( 1_ K)) * f))) by Th30

        .= ( ColVec2Mx (g + (( - ( 1_ K)) * f))) by A3, A9, A10, Th28, Th59;

        then (g + (( - ( 1_ K)) * f)) in ( Solutions_of (A,(( len A) |-> ( 0. K)))) by A11;

        then

         A12: GF in ( Space_of_Solutions_of A) by A5, STRUCT_0:def 5;

        (f + (g + (( - ( 1_ K)) * f))) = (f + ((( - ( 1_ K)) * f) + g)) by FINSEQOP: 33

        .= (f + (( - f) + g)) by FVSUM_1: 59

        .= ((f + ( - f)) + g) by FINSEQOP: 28

        .= ((( width A) |-> ( 0. K)) + g) by FVSUM_1: 26

        .= g by FVSUM_1: 21;

        then (F + GF) = g by MATRIX13: 102;

        hence thesis by A8, A12;

      end;

      (F + ( Space_of_Solutions_of A)) c= ( Solutions_of (A,b))

      proof

        let y be object;

        

         A13: ( len A) = 0 or ( len A) <> 0 ;

        ( len (( len A) |-> ( 0. K))) = ( len A) by CARD_1:def 7;

        then

         A14: ( width CB) = 1 & ( width ( ColVec2Mx (( len A) |-> ( 0. K)))) = 1 or ( width CB) = 0 & ( width ( ColVec2Mx (( len A) |-> ( 0. K)))) = 0 by A4, A13, Th26, MATRIX_0: 22;

        ( ColVec2Mx (( len A) |-> ( 0. K))) = ( 0. (K,( len A),1)) by Th32;

        then

         A15: (CB + ( ColVec2Mx (( len A) |-> ( 0. K)))) = CB by A4, MATRIX_3: 4;

        assume y in (F + ( Space_of_Solutions_of A));

        then

        consider U be Element of V such that

         A16: U in ( Space_of_Solutions_of A) and

         A17: y = (F + U) by VECTSP_4: 42;

        reconsider u = U as Element of (( width A) -tuples_on the carrier of K) by MATRIX13: 102;

        u in ( Solutions_of (A,(( len A) |-> ( 0. K)))) by A5, A16, STRUCT_0:def 5;

        then

        consider g such that

         A18: u = g and

         A19: ( ColVec2Mx g) in ( Solutions_of (A,( ColVec2Mx (( len A) |-> ( 0. K)))));

        ( width A) = ( len g) by A19, Th59;

        then ( ColVec2Mx (f + g)) = (Cf + ( ColVec2Mx g)) by A2, Th28, Th59;

        then ( ColVec2Mx (f + g)) in ( Solutions_of (A,CB)) by A2, A19, A14, A15, Th37;

        then (f + g) in ( Solutions_of (A,b));

        hence thesis by A17, A18, MATRIX13: 102;

      end;

      then (F + ( Space_of_Solutions_of A)) = ( Solutions_of (A,b)) by A6;

      hence thesis by VECTSP_4:def 6;

    end;

    theorem :: MATRIX15:63

    

     Th63: for A st (( width A) = 0 implies ( len A) = 0 ) & ( the_rank_of A) = 0 holds ( Space_of_Solutions_of A) = (( width A) -VectSp_over K)

    proof

      let A such that

       A1: ( width A) = 0 implies ( len A) = 0 and

       A2: ( the_rank_of A) = 0 ;

      set L = (( len A) |-> ( 0. K));

      the carrier of (( width A) -VectSp_over K) c= ( Solutions_of (A,L))

      proof

        let x be object such that

         A3: x in the carrier of (( width A) -VectSp_over K);

        reconsider x9 = x as Element of (( width A) -tuples_on the carrier of K) by A3, MATRIX13: 102;

        

         A4: A = ( 0. (K,( len A),( width A))) & ( ColVec2Mx L) = ( 0. (K,( len A),1)) by A2, Th32, MATRIX13: 95;

        per cases ;

          suppose

           A5: ( len A) = 0 ;

          then ( Solutions_of (A,( ColVec2Mx L))) = { {} } by A4, Th51;

          then

           A6: {} in ( Solutions_of (A,( ColVec2Mx L))) by TARSKI:def 1;

          then

          consider f such that

           A7: {} = ( ColVec2Mx f) and

           A8: ( len f) = ( width A) by Th58;

          ( width A) = 0 by A5, MATRIX_0:def 3;

          

          then the carrier of (( width A) -VectSp_over K) = ( 0 -tuples_on the carrier of K) by MATRIX13: 102

          .= {( <*> the carrier of K)} by FINSEQ_2: 94;

          then x = ( <*> the carrier of K) by A3, TARSKI:def 1;

          then f = x by A5, A8, MATRIX_0:def 3;

          hence thesis by A6, A7;

        end;

          suppose

           A9: ( len A) > 0 ;

          

           A10: ( len x9) = ( width A) by CARD_1:def 7;

          ( Solutions_of (A,( ColVec2Mx L))) = the set of all X where X be Matrix of ( width A), 1, K by A1, A4, A9, Th54;

          then ( ColVec2Mx x9) in ( Solutions_of (A,( ColVec2Mx L))) by A10;

          hence thesis;

        end;

      end;

      

      then the carrier of (( width A) -VectSp_over K) = ( Solutions_of (A,L))

      .= the carrier of ( Space_of_Solutions_of A) by A1, Def5;

      hence thesis by VECTSP_4: 31;

    end;

    theorem :: MATRIX15:64

    for A st ( Space_of_Solutions_of A) = (( width A) -VectSp_over K) holds ( the_rank_of A) = 0

    proof

      let A such that

       A1: ( Space_of_Solutions_of A) = (( width A) -VectSp_over K);

      assume ( the_rank_of A) <> 0 ;

      then

      consider i, j such that

       A2: [i, j] in ( Indices A) and

       A3: (A * (i,j)) <> ( 0. K) by MATRIX13: 94;

      

       A4: j in ( Seg ( width A)) by A2, ZFMISC_1: 87;

      then

       A5: ( width A) <> 0 ;

      set L = ( Line (( 1. (K,( width A))),j));

      

       A6: ( width ( 1. (K,( width A)))) = ( width A) by MATRIX_0: 24;

      then

       A7: ( dom L) = ( Seg ( width A)) by FINSEQ_2: 124;

      

       A8: ( Indices ( 1. (K,( width A)))) = [:( Seg ( width A)), ( Seg ( width A)):] by MATRIX_0: 24;

       A9:

      now

        let k such that

         A10: k in ( dom L) and

         A11: k <> j;

         [j, k] in ( Indices ( 1. (K,( width A)))) by A4, A7, A8, A10, ZFMISC_1: 87;

        

        hence ( 0. K) = (( 1. (K,( width A))) * (j,k)) by A11, MATRIX_1:def 3

        .= (L . k) by A6, A7, A10, MATRIX_0:def 7;

      end;

      

       A12: ( dom ( Line (A,i))) = ( Seg ( width A)) by FINSEQ_2: 124;

       [j, j] in ( Indices ( 1. (K,( width A)))) by A4, A8, ZFMISC_1: 87;

      

      then ( 1_ K) = (( 1. (K,( width A))) * (j,j)) by MATRIX_1:def 3

      .= (L . j) by A4, A6, MATRIX_0:def 7;

      

      then

       A13: ( Sum ( mlt (L,( Line (A,i))))) = (( Line (A,i)) . j) by A4, A7, A12, A9, MATRIX_3: 17

      .= (A * (i,j)) by A4, MATRIX_0:def 7;

      

       A14: ( ColVec2Mx (( len A) |-> ( 0. K))) = ( 0. (K,( len A),1)) by Th32;

      

       A15: i in ( dom A) by A2, ZFMISC_1: 87;

      L in (( width A) -tuples_on the carrier of K) by A6;

      then L in the carrier of ( Space_of_Solutions_of A) by A1, MATRIX13: 102;

      then L in ( Solutions_of (A,(( len A) |-> ( 0. K)))) by Def5, A5;

      then

      consider f such that

       A16: f = L and

       A17: ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx (( len A) |-> ( 0. K)))));

      consider X such that

       A18: X = ( ColVec2Mx f) and

       A19: ( len X) = ( width A) and ( width X) = ( width ( ColVec2Mx (( len A) |-> ( 0. K)))) and

       A20: (A * X) = ( ColVec2Mx (( len A) |-> ( 0. K))) by A17;

      

       A21: 1 in ( Seg 1);

      

       A22: ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3;

      then ( len A) <> 0 by A2, ZFMISC_1: 87;

      then ( Indices ( ColVec2Mx (( len A) |-> ( 0. K)))) = [:( Seg ( len A)), ( Seg 1):] by A14, MATRIX_0: 23;

      then

       A23: [i, 1] in ( Indices ( ColVec2Mx (( len A) |-> ( 0. K)))) by A15, A22, A21, ZFMISC_1: 87;

      

      then (( Line (A,i)) "*" ( Col (X,1))) = (( 0. (K,( len A),1)) * (i,1)) by A19, A20, A14, MATRIX_3:def 4

      .= ( 0. K) by A14, A23, MATRIX_3: 1;

      

      then ( 0. K) = (( Col (X,1)) "*" ( Line (A,i))) by FVSUM_1: 90

      .= ( Sum ( mlt (f,( Line (A,i))))) by A18, A19, Th26, A5;

      hence thesis by A3, A16, A13;

    end;

    theorem :: MATRIX15:65

    

     Th65: for i, j st j in ( Seg m) & n > 0 & (i = j implies a <> ( - ( 1_ K))) holds ( Space_of_Solutions_of A9) = ( Space_of_Solutions_of ( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j)))))))

    proof

      let i, j such that

       A1: j in ( Seg m) and

       A2: n > 0 and

       A3: i = j implies a <> ( - ( 1_ K));

      set L = (( len A9) |-> ( 0. K));

      set R = ( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j))))));

      

       A4: m <> 0 by A1;

      then

       A5: ( width R) = n by MATRIX_0: 23;

      ( len L) = ( len A9) by CARD_1:def 7;

      then ( len L) = m by MATRIX_0:def 2;

      then

      reconsider C = ( ColVec2Mx L) as Matrix of m, 1, K;

      set RC = ( RLine (C,i,(( Line (C,i)) + (a * ( Line (C,j))))));

      

       A6: C = ( 0. (K,( len A9),1)) by Th32;

      now

        let i9,j9 be Nat such that

         A7: [i9, j9] in ( Indices C);

        reconsider I = i9, J = j9 as Element of NAT by ORDINAL1:def 12;

        

         A8: ( len (( Line (C,i)) + (a * ( Line (C,j))))) = ( width C) by CARD_1:def 7;

        now

          per cases ;

            suppose

             A9: i9 = i;

            

             A10: 1 = ( width C) by A4, MATRIX_0: 23;

            then

             A11: j9 in ( Seg 1) by A7, ZFMISC_1: 87;

            then (( Line (C,j)) . j9) = (C * (j,j9)) by A10, MATRIX_0:def 7;

            then

             A12: ((a * ( Line (C,j))) . j9) = (a * (C * (j,j9))) by A10, A11, FVSUM_1: 51;

            ( Indices C) = [:( Seg m), ( Seg 1):] by A4, MATRIX_0: 23;

            then

             A13: [j, j9] in ( Indices C) by A1, A11, ZFMISC_1: 87;

            (( Line (C,i)) . j9) = (C * (i,j9)) by A10, A11, MATRIX_0:def 7;

            

            then ((( Line (C,i)) + (a * ( Line (C,j)))) . j9) = ((C * (i,j9)) + (a * (C * (j,j9)))) by A10, A11, A12, FVSUM_1: 18

            .= (( 0. K) + (a * (C * (j,j9)))) by A6, A7, A9, MATRIX_3: 1

            .= (( 0. K) + (a * ( 0. K))) by A6, A13, MATRIX_3: 1

            .= (( 0. K) + ( 0. K))

            .= ( 0. K) by RLVECT_1:def 4

            .= (C * (i9,j9)) by A6, A7, MATRIX_3: 1;

            hence (C * (I,J)) = (RC * (I,J)) by A7, A8, A9, MATRIX11:def 3;

          end;

            suppose i <> i9;

            hence (C * (I,J)) = (RC * (I,J)) by A7, A8, MATRIX11:def 3;

          end;

        end;

        hence (C * (i9,j9)) = (RC * (i9,j9));

      end;

      then RC = C by MATRIX_0: 27;

      then

       A14: ( Solutions_of (A9,C)) = ( Solutions_of (R,C)) by A1, A3, Th40;

      set SR = ( Space_of_Solutions_of R);

      ( len A9) = m & ( len R) = m by A4, MATRIX_0: 23;

      then

       A15: the carrier of SR = ( Solutions_of (R,L)) by A2, A5, Def5;

      set SA = ( Space_of_Solutions_of A9);

      

       A16: ( width A9) = n by A4, MATRIX_0: 23;

      then the carrier of SA = ( Solutions_of (A9,L)) by A2, Def5;

      hence thesis by A16, A5, A14, A15, VECTSP_4: 29;

    end;

    theorem :: MATRIX15:66

    

     Th66: for N st N c= ( dom A) & N is non empty & ( width A) > 0 & for i st i in (( dom A) \ N) holds ( Line (A,i)) = (( width A) |-> ( 0. K)) holds ( Space_of_Solutions_of A) = ( Space_of_Solutions_of ( Segm (A,N,( Seg ( width A)))))

    proof

      let N such that

       A1: N c= ( dom A) and

       A2: N is non empty and

       A3: ( width A) > 0 and

       A4: for i st i in (( dom A) \ N) holds ( Line (A,i)) = (( width A) |-> ( 0. K));

      set L = (( len A) |-> ( 0. K));

      set C = ( ColVec2Mx L);

      

       A5: ( len L) = ( len A) by CARD_1:def 7;

      set S = ( Segm (A,N,( Seg ( width A))));

      

       A6: ( width S) = ( card ( Seg ( width A))) by A2, MATRIX_0: 23;

      then

       A7: ( width A) = ( width S) by FINSEQ_1: 57;

      set SS = ( Space_of_Solutions_of S);

      ( len S) = ( card N) by MATRIX_0:def 2;

      then

       A8: the carrier of SS = ( Solutions_of (S,(( card N) |-> ( 0. K)))) by A3, A6, Def5;

      set SA = ( Space_of_Solutions_of A);

      

       A9: the carrier of SA = ( Solutions_of (A,L)) by A3, Def5;

      

       A10: C = ( 0. (K,( len A),1)) by Th32;

      ( len C) = ( len L) by MATRIX_0:def 2;

      then

       A11: ( dom C) = ( dom A) by A5, FINSEQ_3: 29;

      

       A12: ( dom A) = ( Seg ( len A)) by FINSEQ_1:def 3;

      then

       A13: ( Seg ( len A)) <> {} by A1, A2;

      then

       A14: ( width C) = 1 by Th26;

      then

       A15: ( card ( Seg ( width C))) = 1 by FINSEQ_1: 57;

      now

        

         A16: ( rng ( Sgm ( Seg 1))) = ( Seg 1) by FINSEQ_1:def 13;

        

         A17: ( Indices ( Segm (C,N,( Seg ( width C))))) = ( Indices ( 0. (K,( card N),1))) by A15, MATRIX_0: 26;

        let k, l such that

         A18: [k, l] in ( Indices ( Segm (C,N,( Seg ( width C)))));

        reconsider kk = k, ll = l as Element of NAT by ORDINAL1:def 12;

         [:N, ( Seg ( width C)):] c= ( Indices C) & ( rng ( Sgm N)) = N by A1, A12, A11, FINSEQ_1:def 13, ZFMISC_1: 95;

        then

         A19: [(( Sgm N) . kk), (( Sgm ( Seg ( width C))) . ll)] in ( Indices C) by A14, A18, A16, MATRIX13: 17;

        

        thus (( Segm (C,N,( Seg ( width C)))) * (k,l)) = (C * ((( Sgm N) . kk),(( Sgm ( Seg ( width C))) . ll))) by A18, MATRIX13:def 1

        .= ( 0. K) by A10, A19, MATRIX_3: 1

        .= (( 0. (K,( card N),1)) * (k,l)) by A18, A17, MATRIX_3: 1;

      end;

      

      then

       A20: ( Segm (C,N,( Seg ( width C)))) = ( 0. (K,( card N),1)) by A15, MATRIX_0: 27

      .= ( ColVec2Mx (( card N) |-> ( 0. K))) by Th32;

      now

        let i such that

         A21: i in (( dom A) \ N);

        

         A22: i in ( dom A) by A21, XBOOLE_0:def 5;

        

        then ( Line (C,i)) = (C . i) by A5, A12, MATRIX_0: 52

        .= ((( len A) |-> (( width C) |-> ( 0. K))) . i) by A10, A13, Th26

        .= (( width C) |-> ( 0. K)) by A12, A22, FINSEQ_2: 57;

        hence ( Line (A,i)) = (( width A) |-> ( 0. K)) & ( Line (C,i)) = (( width C) |-> ( 0. K)) by A4, A21;

      end;

      then ( Solutions_of (A,C)) = ( Solutions_of (( Segm (A,N,( Seg ( width A)))),( Segm (C,N,( Seg ( width C)))))) by A1, A2, A11, Th45;

      hence thesis by A20, A7, A9, A8, VECTSP_4: 29;

    end;

    

     Lm7: for A be set st A c= ( dom g) holds ex ga,gb be FinSequence of K st ga = (g * ( Sgm A)) & gb = (g * ( Sgm (( dom g) \ A))) & ( Sum g) = (( Sum ga) + ( Sum gb))

    proof

      

       A1: ( rng g) c= the carrier of K by FINSEQ_1:def 4;

      set Ad = the addF of K;

      

       A2: ( dom g) = ( Seg ( len g)) by FINSEQ_1:def 3;

      then

       A3: ( dom g) = ( rng ( idseq ( len g))) & ( dom g) = ( dom ( idseq ( len g)));

      let A be set such that

       A4: A c= ( dom g);

      

       A5: ( rng ( Sgm A)) = A by A4, A2, FINSEQ_1:def 13;

      

       A6: (( idseq ( len g)) " A) = A by A4, A2, FUNCT_2: 94;

      

       A7: (( dom g) \ A) c= ( dom g) by XBOOLE_1: 36;

      then

       A8: ( rng ( Sgm (( dom g) \ A))) = (( dom g) \ A) by A2, FINSEQ_1:def 13;

      then

      reconsider ga = (g * ( Sgm A)), gb = (g * ( Sgm (( dom g) \ A))) as FinSequence by A4, A5, FINSEQ_1: 16, XBOOLE_1: 36;

      (( idseq ( len g)) " (( dom g) \ A)) = (( dom g) \ A) by A2, A7, FUNCT_2: 94;

      then

       A9: (( Sgm A) ^ ( Sgm (( dom g) \ A))) is Permutation of ( dom g) by A6, A3, FINSEQ_3: 114;

      then

      reconsider gS = (g * (( Sgm A) ^ ( Sgm (( dom g) \ A)))) as FinSequence of K by A2, FINSEQ_2: 46;

      ( rng ga) c= ( rng g) by RELAT_1: 26;

      then

       A10: ( rng ga) c= the carrier of K by A1;

      ( rng gb) c= ( rng g) by RELAT_1: 26;

      then ( rng gb) c= the carrier of K by A1;

      then

      reconsider ga, gb as FinSequence of K by A10, FINSEQ_1:def 4;

      take ga, gb;

      (Ad $$ g) = (Ad "**" gS) by A9, FINSOP_1: 7, FVSUM_1: 8

      .= (Ad "**" (ga ^ gb)) by A4, A7, A5, A8, Th5

      .= (( Sum ga) + ( Sum gb)) by FINSOP_1: 5, FVSUM_1: 8;

      hence thesis;

    end;

    theorem :: MATRIX15:67

    

     Th67: for A be Matrix of n, m, K, N st ( card N) = n & N c= ( Seg m) & ( Segm (A,( Seg n),N)) = ( 1. (K,n)) & n > 0 & (m -' n) > 0 holds ex MVectors be Matrix of (m -' n), m, K st ( Segm (MVectors,( Seg (m -' n)),(( Seg m) \ N))) = ( 1. (K,(m -' n))) & ( Segm (MVectors,( Seg (m -' n)),N)) = ( - (( Segm (A,( Seg n),(( Seg m) \ N))) @ )) & ( Lin ( lines MVectors)) = ( Space_of_Solutions_of A)

    proof

      let A be Matrix of n, m, K, N such that

       A1: ( card N) = n and

       A2: N c= ( Seg m) and

       A3: ( Segm (A,( Seg n),N)) = ( 1. (K,n)) and

       A4: n > 0 and

       A5: (m -' n) > 0 ;

      ( Seg m) <> {} by A1, A2, A4, CARD_1: 27, XBOOLE_1: 3;

      then

       A6: m <> 0 ;

      consider MV be Matrix of (m -' n), m, K such that

       A7: ( Segm (MV,( Seg (m -' n)),(( Seg m) \ N))) = ( 1. (K,(m -' n))) and

       A8: ( Segm (MV,( Seg (m -' n)),N)) = ( - (( Segm (A,( Seg n),(( Seg m) \ N))) @ )) and

       A9: for l holds for M be Matrix of m, l, K st for i st i in ( Seg l) holds (ex j st j in ( Seg (m -' n)) & ( Col (M,i)) = ( Line (MV,j))) or ( Col (M,i)) = (m |-> ( 0. K)) holds M in ( Solutions_of (A,( 0. (K,n,l)))) by A1, A2, A3, A4, Th49;

      

       A10: ( width MV) = m by A5, MATRIX_0: 23;

      

       A11: ( len MV) = (m -' n) & ( len MV) >= ( the_rank_of MV) by MATRIX13: 74, MATRIX_0:def 2;

      

       A12: ( Indices MV) = [:( Seg (m -' n)), ( Seg m):] by A5, MATRIX_0: 23;

      (( Seg m) \ N) c= ( Seg m) by XBOOLE_1: 36;

      then

       A13: [:( Seg (m -' n)), (( Seg m) \ N):] c= ( Indices MV) by A12, ZFMISC_1: 95;

      

       A14: ( width A) = m by A4, MATRIX_0: 23;

      

       A15: ( len A) = n by A4, MATRIX_0: 23;

      ( lines MV) c= ( Solutions_of (A,(( len A) |-> ( 0. K))))

      proof

        let x be object;

        assume x in ( lines MV);

        then

        consider k such that

         A16: k in ( Seg (m -' n)) and

         A17: x = ( Line (MV,k)) by MATRIX13: 103;

        set C = ( ColVec2Mx ( Line (MV,k)));

        

         A18: m = ( width MV) by A5, MATRIX_0: 23

        .= ( len ( Line (MV,k))) by CARD_1:def 7;

        now

          let i;

          assume i in ( Seg 1);

          then

           A19: i = 1 by FINSEQ_1: 2, TARSKI:def 1;

          ( Col (C,1)) = ( Line (MV,k)) by A6, A18, Th26;

          hence (ex j st j in ( Seg (m -' n)) & ( Col (C,i)) = ( Line (MV,j))) or ( Col (C,i)) = (m |-> ( 0. K)) by A16, A19;

        end;

        then C in ( Solutions_of (A,( 0. (K,n,1)))) by A9, A18;

        then C in ( Solutions_of (A,( ColVec2Mx (( len A) |-> ( 0. K))))) by A15, Th32;

        hence thesis by A17;

      end;

      then ( Lin ( lines MV)) is Subspace of ( Lin ( Solutions_of (A,(( len A) |-> ( 0. K))))) by A14, VECTSP_7: 13;

      then

       A20: the carrier of ( Lin ( lines MV)) c= the carrier of ( Lin ( Solutions_of (A,(( len A) |-> ( 0. K))))) by VECTSP_4:def 2;

      ((m -' n) + 0 ) > 0 by A5;

      then (m -' n) >= 1 by NAT_1: 19;

      then

       A21: ( Det ( 1. (K,(m -' n)))) = ( 1_ K) by MATRIX_7: 16;

      

       A22: ( 0. K) <> ( 1_ K);

      

       A23: ( card ( Seg m)) = m by FINSEQ_1: 57;

      then

       A24: (m -' n) = (m - n) by A1, A2, NAT_1: 43, XREAL_1: 233;

      

       A25: ( card (( Seg m) \ N)) = (m - n) by A1, A2, A23, CARD_2: 44;

      then

       A26: ( card ( Seg (m -' n))) = ( card (( Seg m) \ N)) by A24, FINSEQ_1: 57;

      ( EqSegm (MV,( Seg (m -' n)),(( Seg m) \ N))) = ( 1. (K,(m -' n))) by A7, A24, A25, FINSEQ_1: 57, MATRIX13:def 3;

      then (m -' n) <= ( the_rank_of MV) by A24, A25, A26, A13, A21, A22, MATRIX13:def 4;

      then

       A27: ( the_rank_of MV) = (m -' n) by A11, XXREAL_0: 1;

      

       A28: the carrier of ( Space_of_Solutions_of A) c= the carrier of ( Lin ( lines MV))

      proof

        set SN = (( Seg m) \ N);

        let y be object;

        assume y in the carrier of ( Space_of_Solutions_of A);

        then y in ( Solutions_of (A,(( len A) |-> ( 0. K)))) by A6, A14, Def5;

        then

        consider f such that

         A29: f = y and

         A30: ( ColVec2Mx f) in ( Solutions_of (A,( ColVec2Mx (( len A) |-> ( 0. K)))));

        

         A31: ( len f) = m by A14, A30, Th59;

        deffunc F( Nat) = ((f /. (( Sgm SN) . $1)) * ( Line (MV,$1)));

        

         A32: ( dom f) = ( Seg ( len f)) by FINSEQ_1:def 3;

        consider M be FinSequence of (( width MV) -tuples_on the carrier of K) such that

         A33: ( len M) = (m -' n) and

         A34: for j st j in ( dom M) holds (M . j) = F(j) from FINSEQ_2:sch 1;

        

         A35: ( dom M) = ( Seg (m -' n)) by A33, FINSEQ_1:def 3;

        reconsider M as FinSequence of the carrier of (m -VectSp_over K) by A10, MATRIX13: 102;

        reconsider M1 = ( FinS2MX M) as Matrix of (m -' n), m, K by A33;

        now

          let i such that

           A36: i in ( Seg (m -' n));

          take a = (f /. (( Sgm SN) . i));

          

          thus ( Line (M1,i)) = (M1 . i) by A36, MATRIX_0: 52

          .= (a * ( Line (MV,i))) by A34, A35, A36;

        end;

        then

        consider L be Linear_Combination of ( lines MV) such that

         A37: (L (#) ( MX2FinS MV)) = M1 by A27, MATRIX13: 105, MATRIX13: 108;

        reconsider SumL = ( Sum L), f as Element of (m -tuples_on the carrier of K) by A31, FINSEQ_2: 92, MATRIX13: 102;

        now

          let i such that

           A38: i in ( Seg m);

          

           A39: SN c= ( Seg m) by XBOOLE_1: 36;

           A40:

          now

            per cases ;

              suppose

               A41: i in N;

              consider X such that

               A42: X = ( ColVec2Mx f) and

               A43: ( len X) = ( width A) and ( width X) = ( width ( ColVec2Mx (( len A) |-> ( 0. K)))) and

               A44: (A * X) = ( ColVec2Mx (( len A) |-> ( 0. K))) by A30;

              

               A45: f = ( Col (X,1)) by A6, A42, Th26;

              reconsider F = f as Element of (( width A) -tuples_on the carrier of K) by A4, MATRIX_0: 23;

              

               A46: ( rng ( Sgm ( Seg (m -' n)))) = ( Seg (m -' n)) by FINSEQ_1:def 13;

              

               A47: ( rng ( Sgm N)) = N by A2, FINSEQ_1:def 13;

              then

              consider x be object such that

               A48: x in ( dom ( Sgm N)) and

               A49: (( Sgm N) . x) = i by A41, FUNCT_1:def 3;

              reconsider x as Element of NAT by A48;

              set L = ( Line (A,x));

              

               A50: ( dom ( mlt (L,F))) = ( Seg m) by A14, FINSEQ_2: 124;

              then

              consider mN,mSN be FinSequence of K such that

               A51: mN = (( mlt (L,F)) * ( Sgm N)) and

               A52: mSN = (( mlt (L,F)) * ( Sgm SN)) and

               A53: ( Sum ( mlt (L,F))) = (( Sum mN) + ( Sum mSN)) by A2, Lm7;

              

               A54: ( dom ( Sgm N)) = ( Seg ( card N)) by A2, FINSEQ_3: 40;

              then

               A55: ( dom mN) = ( Seg n) by A1, A2, A47, A50, A51, RELAT_1: 27;

              ( Indices ( 1. (K,n))) = [:( Seg n), ( Seg n):] by MATRIX_0: 24;

              then

               A56: [x, x] in ( Indices ( 1. (K,n))) by A1, A54, A48, ZFMISC_1: 87;

              

               A57: (( Sgm N) . x) in N by A47, A48, FUNCT_1:def 3;

              then

               A58: (F . (( Sgm N) . x)) = (F /. (( Sgm N) . x)) & (L . (( Sgm N) . x)) = (A * (x,(( Sgm N) . x))) by A2, A14, A31, A32, MATRIX_0:def 7, PARTFUN1:def 6;

              

               A59: x = (( idseq n) . x) by A1, A54, A48, FINSEQ_2: 49

              .= (( Sgm ( Seg n)) . x) by FINSEQ_3: 48;

              now

                let j such that

                 A60: j in ( dom mN) and

                 A61: j <> x;

                ( Indices ( 1. (K,n))) = [:( Seg n), ( Seg n):] by MATRIX_0: 24;

                then

                 A62: [x, j] in ( Indices ( 1. (K,n))) by A1, A54, A48, A55, A60, ZFMISC_1: 87;

                

                 A63: (( Sgm N) . j) in N by A1, A47, A54, A55, A60, FUNCT_1:def 3;

                then

                 A64: (F . (( Sgm N) . j)) = (F /. (( Sgm N) . j)) & (L . (( Sgm N) . j)) = (A * (x,(( Sgm N) . j))) by A2, A14, A31, A32, MATRIX_0:def 7, PARTFUN1:def 6;

                

                thus (mN . j) = (( mlt (L,F)) . (( Sgm N) . j)) by A51, A60, FUNCT_1: 12

                .= ((F /. (( Sgm N) . j)) * (A * ((( Sgm ( Seg n)) . x),(( Sgm N) . j)))) by A2, A14, A59, A63, A64, FVSUM_1: 61

                .= ((F /. (( Sgm N) . j)) * (( 1. (K,n)) * (x,j))) by A3, A62, MATRIX13:def 1

                .= ((F /. (( Sgm N) . j)) * ( 0. K)) by A61, A62, MATRIX_1:def 3

                .= ( 0. K);

              end;

              then ( Sum mN) = (mN . x) by A1, A54, A48, A55, MATRIX_3: 12;

              

              then

               A65: ( Sum mN) = (( mlt (L,F)) . (( Sgm N) . x)) by A1, A54, A48, A51, A55, FUNCT_1: 12

              .= ((F /. (( Sgm N) . x)) * (A * ((( Sgm ( Seg n)) . x),(( Sgm N) . x)))) by A2, A14, A59, A57, A58, FVSUM_1: 61

              .= ((F /. (( Sgm N) . x)) * (( 1. (K,n)) * (x,x))) by A3, A56, MATRIX13:def 1

              .= ((F /. (( Sgm N) . x)) * ( 1_ K)) by A56, MATRIX_1:def 3

              .= (F /. i) by A49

              .= (f . i) by A31, A32, A38, PARTFUN1:def 6;

              

               A66: ( dom ( Sgm SN)) = ( Seg ( card SN)) by FINSEQ_3: 40, XBOOLE_1: 36;

              

               A67: ( rng ( Sgm SN)) = SN by A39, FINSEQ_1:def 13;

              then ( dom mSN) = ( Seg (m -' n)) by A24, A25, A50, A52, A66, RELAT_1: 27, XBOOLE_1: 36;

              then

               A68: ( len mSN) = (m -' n) by FINSEQ_1:def 3;

              

               A69: ( ColVec2Mx (( len A) |-> ( 0. K))) = ( 0. (K,( len A),1)) by Th32;

              ( Indices ( 0. (K,( len A),1))) = [:( Seg ( len A)), ( Seg 1):] & 1 in ( Seg 1) by A4, A15, MATRIX_0: 23;

              then

               A70: [x, 1] in ( Indices ( 0. (K,( len A),1))) by A1, A15, A54, A48, ZFMISC_1: 87;

              

              then

               A71: ( 0. K) = (( ColVec2Mx (( len A) |-> ( 0. K))) * (x,1)) by A69, MATRIX_3: 1

              .= (( Line (A,x)) "*" ( Col (X,1))) by A43, A44, A69, A70, MATRIX_3:def 4

              .= ( Sum ( mlt (( Line (A,x)),( Col (X,1)))));

              reconsider mSN as Element of ((m -' n) -tuples_on the carrier of K) by A68, FINSEQ_2: 92;

              

               A72: ( width M1) = m by A5, MATRIX_0: 23;

              now

                let j such that

                 A73: j in ( Seg (m -' n));

                

                 A74: j = (( idseq (m -' n)) . j) by A73, FINSEQ_2: 49

                .= (( Sgm ( Seg (m -' n))) . j) by FINSEQ_3: 48;

                

                 A75: ( Line (M1,j)) = (M1 . j) by A73, MATRIX_0: 52

                .= ((f /. (( Sgm SN) . j)) * ( Line (MV,j))) by A34, A35, A73;

                

                 A76: (( Sgm SN) . j) in SN by A24, A25, A67, A66, A73, FUNCT_1:def 3;

                then (f /. (( Sgm SN) . j)) = (F . (( Sgm SN) . j)) & (A * (x,(( Sgm SN) . j))) = (L . (( Sgm SN) . j)) by A14, A31, A32, A39, MATRIX_0:def 7, PARTFUN1:def 6;

                

                then

                 A77: ((f /. (( Sgm SN) . j)) * (A * (x,(( Sgm SN) . j)))) = (( mlt (L,F)) . (( Sgm SN) . j)) by A14, A39, A76, FVSUM_1: 61

                .= (mSN . j) by A24, A25, A52, A66, A73, FUNCT_1: 13;

                

                 A78: x = (( idseq n) . x) by A1, A54, A48, FINSEQ_2: 49

                .= (( Sgm ( Seg n)) . x) by FINSEQ_3: 48;

                

                 A79: [:( Seg (m -' n)), N:] c= ( Indices MV) by A2, A12, ZFMISC_1: 95;

                 [j, i] in ( Indices MV) by A2, A12, A41, A73, ZFMISC_1: 87;

                then

                 A80: [j, x] in ( Indices ( Segm (MV,( Seg (m -' n)),N))) by A47, A49, A46, A74, A79, MATRIX13: 17;

                then

                 A81: [j, x] in ( Indices (( Segm (A,( Seg n),SN)) @ )) by A8, Lm1;

                then

                 A82: [x, j] in ( Indices ( Segm (A,( Seg n),SN))) by MATRIX_0:def 6;

                

                 A83: (( Line (MV,j)) . i) = (MV * ((( Sgm ( Seg (m -' n))) . j),(( Sgm N) . x))) by A10, A38, A49, A74, MATRIX_0:def 7

                .= (( - (( Segm (A,( Seg n),(( Seg m) \ N))) @ )) * (j,x)) by A8, A80, MATRIX13:def 1

                .= ( - ((( Segm (A,( Seg n),(( Seg m) \ N))) @ ) * (j,x))) by A81, MATRIX_3:def 2

                .= ( - (( Segm (A,( Seg n),SN)) * (x,j))) by A82, MATRIX_0:def 6

                .= ( - (A * (x,(( Sgm SN) . j)))) by A82, A78, MATRIX13:def 1;

                ( dom M1) = ( Seg (m -' n)) by A33, FINSEQ_1:def 3;

                

                hence (( Col (M1,i)) . j) = (M1 * (j,i)) by A73, MATRIX_0:def 8

                .= (( Line (M1,j)) . i) by A38, A72, MATRIX_0:def 7

                .= ((f /. (( Sgm SN) . j)) * ( - (A * (x,(( Sgm SN) . j))))) by A2, A10, A41, A75, A83, FVSUM_1: 51

                .= ( - ((f /. (( Sgm SN) . j)) * (A * (x,(( Sgm SN) . j))))) by VECTSP_1: 8

                .= (( - mSN) . j) by A73, A77, FVSUM_1: 23;

              end;

              then ( Col (M1,i)) = ( - mSN) by A33, FINSEQ_2: 119;

              

              hence ( Sum ( Col (M1,i))) = ( - ( Sum mSN)) by FVSUM_1: 75

              .= (( - ( Sum mSN)) + (( Sum mSN) + ( Sum mN))) by A71, A45, A53, RLVECT_1:def 4

              .= ((( - ( Sum mSN)) + ( Sum mSN)) + ( Sum mN)) by RLVECT_1:def 3

              .= (( 0. K) + ( Sum mN)) by VECTSP_1: 19

              .= (f . i) by A65, RLVECT_1:def 4;

            end;

              suppose

               A84: not i in N;

              

               A85: ( rng ( Sgm SN)) = SN by A39, FINSEQ_1:def 13;

              i in SN by A38, A84, XBOOLE_0:def 5;

              then

              consider x be object such that

               A86: x in ( dom ( Sgm SN)) and

               A87: (( Sgm SN) . x) = i by A85, FUNCT_1:def 3;

              reconsider x as Element of NAT by A86;

              

               A88: ( dom ( Sgm SN)) = ( Seg ( card SN)) by FINSEQ_3: 40, XBOOLE_1: 36;

              

              then

               A89: ( Line (M1,x)) = (M1 . x) by A24, A25, A86, MATRIX_0: 52

              .= ((f /. (( Sgm SN) . x)) * ( Line (MV,x))) by A24, A25, A34, A35, A88, A86;

               [x, x] in [:( Seg (m -' n)), ( Seg (m -' n)):] by A24, A25, A88, A86, ZFMISC_1: 87;

              then

               A90: [x, x] in ( Indices ( 1. (K,(m -' n)))) by MATRIX_0: 24;

              x = (( idseq (m -' n)) . x) by A24, A25, A88, A86, FINSEQ_2: 49

              .= (( Sgm ( Seg (m -' n))) . x) by FINSEQ_3: 48;

              

              then

               A91: (( Line (MV,x)) . i) = (MV * ((( Sgm ( Seg (m -' n))) . x),(( Sgm SN) . x))) by A10, A38, A87, MATRIX_0:def 7

              .= (( 1. (K,(m -' n))) * (x,x)) by A7, A90, MATRIX13:def 1

              .= ( 1_ K) by A90, MATRIX_1:def 3;

              

               A92: ( dom ( Col (M1,i))) = ( Seg ( len M1)) by FINSEQ_2: 124;

              

               A93: ( dom M1) = ( Seg ( len M1)) by FINSEQ_1:def 3;

              

               A94: ( len M1) = (m - n) by A5, A24, MATRIX_0: 23;

              

               A95: ( width M1) = m by A5, MATRIX_0: 23;

               A96:

              now

                let j such that

                 A97: j in ( dom ( Col (M1,i))) and

                 A98: x <> j;

                

                 A99: ( Line (M1,j)) = (M1 . j) by A92, A97, MATRIX_0: 52

                .= ((f /. (( Sgm SN) . j)) * ( Line (MV,j))) by A34, A92, A93, A97;

                 [j, x] in [:( Seg (m -' n)), ( Seg (m -' n)):] by A24, A25, A88, A86, A92, A94, A97, ZFMISC_1: 87;

                then

                 A100: [j, x] in ( Indices ( 1. (K,(m -' n)))) by MATRIX_0: 24;

                j = (( idseq (m -' n)) . j) by A24, A92, A94, A97, FINSEQ_2: 49

                .= (( Sgm ( Seg (m -' n))) . j) by FINSEQ_3: 48;

                

                then

                 A101: (( Line (MV,j)) . i) = (MV * ((( Sgm ( Seg (m -' n))) . j),(( Sgm SN) . x))) by A10, A38, A87, MATRIX_0:def 7

                .= (( 1. (K,(m -' n))) * (j,x)) by A7, A100, MATRIX13:def 1

                .= ( 0. K) by A98, A100, MATRIX_1:def 3;

                

                thus (( Col (M1,i)) . j) = (M1 * (j,i)) by A92, A93, A97, MATRIX_0:def 8

                .= (((f /. (( Sgm SN) . j)) * ( Line (MV,j))) . i) by A38, A95, A99, MATRIX_0:def 7

                .= ((f /. (( Sgm SN) . j)) * ( 0. K)) by A10, A38, A101, FVSUM_1: 51

                .= ( 0. K);

              end;

              (( Col (M1,i)) . x) = (M1 * (x,i)) by A25, A88, A86, A94, A93, MATRIX_0:def 8

              .= (( Line (M1,x)) . i) by A38, A95, MATRIX_0:def 7

              .= ((f /. (( Sgm SN) . x)) * ( 1_ K)) by A10, A38, A91, A89, FVSUM_1: 51

              .= (f /. i) by A87

              .= (f . i) by A31, A32, A38, PARTFUN1:def 6;

              hence ( Sum ( Col (M1,i))) = (f . i) by A25, A88, A86, A92, A94, A96, MATRIX_3: 12;

            end;

          end;

          ( Carrier L) c= ( lines MV) by VECTSP_6:def 4;

          hence (SumL . i) = (f . i) by A27, A37, A38, A40, MATRIX13: 105, MATRIX13: 107;

        end;

        then

         A102: SumL = f by FINSEQ_2: 119;

        the carrier of ( Lin ( lines MV)) = the set of all ( Sum l) where l be Linear_Combination of ( lines MV) by VECTSP_7:def 2;

        hence thesis by A29, A102;

      end;

      take MV;

      ( Solutions_of (A,(( len A) |-> ( 0. K)))) = the carrier of ( Space_of_Solutions_of A) by A6, A14, Def5;

      then the carrier of ( Lin ( lines MV)) c= the carrier of ( Space_of_Solutions_of A) by A20, VECTSP_7: 11;

      then the carrier of ( Lin ( lines MV)) = the carrier of ( Space_of_Solutions_of A) by A28;

      hence thesis by A14, A7, A8, VECTSP_4: 29;

    end;

    

     Lm8: ( dim ( Space_of_Solutions_of ( 1. (K,n)))) = 0

    proof

      set ONE = ( 1. (K,n));

      set SS = ( Space_of_Solutions_of ONE);

      

       A1: the carrier of SS c= the carrier of ( (0). SS)

      proof

        let x be object such that

         A2: x in the carrier of SS;

        

         A3: ( len ONE) = n by MATRIX_0: 24;

        

         A4: ( width ONE) = n by MATRIX_0: 24;

        then ( width ONE) = 0 implies ( len ONE) = 0 by MATRIX_0: 24;

        then x in ( Solutions_of (ONE,(n |-> ( 0. K)))) by A2, A3, Def5;

        then

        consider f such that

         A5: f = x and

         A6: ( ColVec2Mx f) in ( Solutions_of (ONE,( ColVec2Mx (n |-> ( 0. K)))));

        consider X such that

         A7: X = ( ColVec2Mx f) and

         A8: ( len X) = ( width ONE) and ( width X) = ( width ( ColVec2Mx (n |-> ( 0. K)))) and

         A9: (ONE * X) = ( ColVec2Mx (n |-> ( 0. K))) by A6;

         A10:

        now

          per cases ;

            suppose

             A11: n > 0 ;

            (ONE * X) = X by A4, A8, MATRIXR2: 68;

            

            hence (n |-> ( 0. K)) = ( Col (X,1)) by A9, A11, Th26

            .= f by A4, A7, A8, A11, Th26;

          end;

            suppose

             A12: n = 0 ;

            then f = {} by A4, A7, A8, MATRIX_0:def 2;

            hence f = (n |-> ( 0. K)) by A12;

          end;

        end;

        ( 0. SS) = ( 0. (( width ONE) -VectSp_over K)) by VECTSP_4: 11

        .= (n |-> ( 0. K)) by A4, MATRIX13: 102;

        then f in {( 0. SS)} by A10, TARSKI:def 1;

        hence thesis by A5, VECTSP_4:def 3;

      end;

      the carrier of ( (0). SS) c= the carrier of SS by VECTSP_4:def 2;

      then the carrier of SS = the carrier of ( (0). SS) by A1;

      then ( (0). SS) = ( (Omega). SS) by VECTSP_4: 29;

      hence thesis by VECTSP_9: 29;

    end;

    theorem :: MATRIX15:68

    

     Th68: for A st (( width A) = 0 implies ( len A) = 0 ) holds ( dim ( Space_of_Solutions_of A)) = (( width A) - ( the_rank_of A))

    proof

      let A such that

       A1: ( width A) = 0 implies ( len A) = 0 ;

      set W = ( width A);

      set L = ( len A);

      reconsider A9 = A as Matrix of L, W, K by MATRIX_0: 51;

      per cases ;

        suppose

         A2: ( the_rank_of A) = 0 ;

        ( dim (( width A) -VectSp_over K)) = ( width A) by MATRIX13: 112;

        hence thesis by A1, A2, Th63;

      end;

        suppose

         A3: ( the_rank_of A) > 0 ;

        defpred P[ set, set] means for A1 be Matrix of L, W, K st A1 = $1 holds ( Space_of_Solutions_of A9) = ( Space_of_Solutions_of A1);

        deffunc F( Matrix of L, W, K, Nat, Nat, Element of K) = $1;

        

         A4: W > 0 by A3, MATRIX13: 74;

        

         A5: for A1 be Matrix of L, W, K, B1 be Matrix of L, W, K st P[A1, B1] holds for a be Element of K holds for i, j st j in ( dom A1) & (i = j implies a <> ( - ( 1_ K))) holds P[( RLine (A1,i,(( Line (A1,i)) + (a * ( Line (A1,j)))))), F(B1,i,j,a)]

        proof

          let A1 be Matrix of L, W, K, B1 be Matrix of L, W, K such that

           A6: P[A1, B1];

          let a be Element of K;

          

           A7: ( dom A1) = ( Seg ( len A1)) by FINSEQ_1:def 3

          .= ( Seg L) by MATRIX_0:def 2;

          let i, j;

          assume j in ( dom A1) & (i = j implies a <> ( - ( 1_ K)));

          

          then ( Space_of_Solutions_of ( RLine (A1,i,(( Line (A1,i)) + (a * ( Line (A1,j))))))) = ( Space_of_Solutions_of A1) by A4, A7, Th65

          .= ( Space_of_Solutions_of A9) by A6;

          hence thesis;

        end;

        

         A8: P[A9, A9];

        consider A1 be Matrix of L, W, K, B1 be Matrix of L, W, K, N such that

         A9: N c= ( Seg W) and

         A10: ( the_rank_of A9) = ( the_rank_of A1) & ( the_rank_of A9) = ( card N) and

         A11: P[A1, B1] & ( Segm (A1,( Seg ( card N)),N)) = ( 1. (K,( card N))) and

         A12: for i st i in ( dom A1) & i > ( card N) holds ( Line (A1,i)) = (W |-> ( 0. K)) and for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A1)) & j < (( Sgm N) . i) holds (A1 * (i,j)) = ( 0. K) from GAUSS2( A8, A5);

        

         A13: 0 < L by A3, MATRIX13: 74;

        then

         A14: ( width A1) = W by MATRIX_0: 23;

        then

         A15: ( card ( Seg ( width A1))) = W by FINSEQ_1: 57;

        then

         A16: ( card (( Seg W) \ N)) = (W - ( card N)) by A9, A14, CARD_2: 44;

        set SN = ( Segm (A1,( Seg ( card N)),( Seg ( width A1))));

        

         A17: ( Seg ( card N)) c= ( Seg ( card N));

        

         A18: (W -' ( card N)) = (W - ( card N)) by A9, A14, A15, NAT_1: 43, XREAL_1: 233;

        ( Sgm ( Seg ( card N))) = ( idseq ( card N)) by FINSEQ_3: 48

        .= ( id ( Seg ( card N)));

        then

         A19: ( Seg ( card N)) = (( Sgm ( Seg ( card N))) " ( Seg ( card N))) by A17, FUNCT_2: 94;

        ( Sgm ( Seg ( width A1))) = ( idseq ( width A1)) by FINSEQ_3: 48

        .= ( id ( Seg ( width A1)));

        then N = (( Sgm ( Seg ( width A1))) " N) by A9, A14, FUNCT_2: 94;

        then

         A20: ( Segm (SN,( Seg ( card N)),N)) = ( 1. (K,( card N))) by A9, A11, A14, A19, MATRIX13: 56;

        

         A21: ( card ( Seg ( card N))) = ( card N) by FINSEQ_1: 57;

        

         A22: ( Seg ( len A1)) = ( dom A1) by FINSEQ_1:def 3;

         A23:

        now

          let i such that

           A24: i in (( dom A1) \ ( Seg ( card N)));

           not i in ( Seg ( card N)) by A24, XBOOLE_0:def 5;

          then

           A25: i < 1 or i > ( card N);

          i in ( dom A1) by A24, XBOOLE_0:def 5;

          hence ( Line (A1,i)) = (( width A1) |-> ( 0. K)) by A12, A22, A14, A25, FINSEQ_1: 1;

        end;

        ( card N) <= ( len A1) by A10, MATRIX13: 74;

        then

         A26: ( Seg ( card N)) c= ( Seg ( len A1)) by FINSEQ_1: 5;

        ( width A1) > 0 by A4, A13, MATRIX_0: 23;

        

        then

         A27: ( Space_of_Solutions_of SN) = ( Space_of_Solutions_of A1) by A3, A10, A26, A22, A23, Th66

        .= ( Space_of_Solutions_of A9) by A11;

        per cases ;

          suppose

           A28: (W -' ( card N)) = 0 ;

          then SN = ( 1. (K,( card N))) by A9, A11, A14, A21, A18, CARD_2: 102;

          hence thesis by A10, A27, A18, A28, Lm8;

        end;

          suppose

           A29: (W -' ( card N)) > 0 ;

          then ((W -' ( card N)) + 0 ) > 0 ;

          then (W -' ( card N)) >= 1 by NAT_1: 19;

          then

           A30: ( Det ( 1. (K,(W -' ( card N))))) = ( 1_ K) by MATRIX_7: 16;

          

           A31: ( card ( Seg (W -' ( card N)))) = (W -' ( card N)) & ( 0. K) <> ( 1_ K) by FINSEQ_1: 57;

          consider MVectors be Matrix of (W -' ( card N)), W, K such that

           A32: ( Segm (MVectors,( Seg (W -' ( card N))),(( Seg W) \ N))) = ( 1. (K,(W -' ( card N)))) and ( Segm (MVectors,( Seg (W -' ( card N))),N)) = ( - (( Segm (SN,( Seg ( card N)),(( Seg W) \ N))) @ )) and

           A33: ( Lin ( lines MVectors)) = ( Space_of_Solutions_of A9) by A3, A9, A10, A27, A21, A15, A20, A29, Th67;

          ( len MVectors) = (W -' ( card N)) by A29, MATRIX_0: 23;

          then

           A34: (W -' ( card N)) >= ( the_rank_of MVectors) by MATRIX13: 74;

          

           A35: (( Seg W) \ N) c= ( Seg W) by XBOOLE_1: 36;

          ( Indices MVectors) = [:( Seg (W -' ( card N))), ( Seg W):] by A29, MATRIX_0: 23;

          then

           A36: [:( Seg (W -' ( card N))), (( Seg W) \ N):] c= ( Indices MVectors) by A35, ZFMISC_1: 95;

          reconsider B = ( lines MVectors) as Subset of (W -VectSp_over K);

          

           A37: ( dom MVectors) = ( Seg ( len MVectors)) & ( len MVectors) = (W -' ( card N)) by FINSEQ_1:def 3, MATRIX_0:def 2;

          ( EqSegm (MVectors,( Seg (W -' ( card N))),(( Seg W) \ N))) = ( 1. (K,(W -' ( card N)))) by A16, A18, A32, FINSEQ_1: 57, MATRIX13:def 3;

          then

           A38: (W -' ( card N)) <= ( the_rank_of MVectors) by A16, A18, A36, A30, A31, MATRIX13:def 4;

          then MVectors is without_repeated_line by A34, MATRIX13: 105, XXREAL_0: 1;

          then (( Seg (W -' ( card N))),B) are_equipotent by A37, WELLORD2:def 4;

          

          then

           A39: ( card B) = ( card ( Seg (W -' ( card N)))) by CARD_1: 5

          .= (W -' ( card N)) by FINSEQ_1: 57;

          ( the_rank_of MVectors) = (W -' ( card N)) by A38, A34, XXREAL_0: 1;

          then ( lines MVectors) is linearly-independent by MATRIX13: 121;

          hence thesis by A10, A18, A33, A39, VECTSP_9: 26;

        end;

      end;

    end;

    theorem :: MATRIX15:69

    

     Th69: for M be Matrix of n, m, K, i, j, a st M is without_repeated_line & j in ( dom M) & (i = j implies a <> ( - ( 1_ K))) holds ( Lin ( lines M)) = ( Lin ( lines ( RLine (M,i,(( Line (M,i)) + (a * ( Line (M,j))))))))

    proof

      let M be Matrix of n, m, K, i, j, a such that

       A1: M is without_repeated_line and

       A2: j in ( dom M) and

       A3: i = j implies a <> ( - ( 1_ K));

      

       A4: ( len M) = n by MATRIX_0:def 2;

      set L = (( Line (M,i)) + (a * ( Line (M,j))));

      

       A5: ( dom M) = ( Seg ( len M)) by FINSEQ_1:def 3;

      set R = ( RLine (M,i,L));

      per cases ;

        suppose not i in ( dom M);

        hence thesis by A5, MATRIX13: 40;

      end;

        suppose

         A6: i in ( dom M);

        then n <> 0 by A5, A4;

        then

         A7: ( width M) = m by MATRIX_0: 23;

        then

        reconsider Li = ( Line (M,i)), Lj = ( Line (M,j)) as Vector of (m -VectSp_over K) by MATRIX13: 102;

        (a * Lj) = (a * ( Line (M,j))) by A7, MATRIX13: 102;

        then

         A8: L = (Li + (a * Lj)) by A7, MATRIX13: 102;

        

         A9: Li = Lj implies (a <> ( - ( 1_ K)) or Li = ( 0. (m -VectSp_over K)))

        proof

          assume

           A10: Li = Lj;

          Li = (M . i) & Lj = (M . j) by A2, A5, A4, A6, MATRIX_0: 52;

          hence thesis by A1, A2, A3, A6, A10, FUNCT_1:def 4;

        end;

        reconsider L9 = L as Element of (the carrier of K * ) by FINSEQ_1:def 11;

        reconsider LL = L9 as set;

        set iL = ( {i} --> L9);

        ( len L) = ( width M) by CARD_1:def 7;

        

        then

         A11: R = (M +* (i,LL)) by MATRIX11: 29

        .= (M +* (i .--> LL)) by A6, FUNCT_7:def 3

        .= (M +* iL) by FUNCOP_1:def 9;

        (M .: (( dom M) \ ( dom iL))) = ((M .: ( dom M)) \ (M .: ( dom iL))) by A1, FUNCT_1: 64

        .= (( rng M) \ (M .: ( dom iL))) by RELAT_1: 113

        .= (( rng M) \ ( Im (M,i)))

        .= (( rng M) \ {(M . i)}) by A6, FUNCT_1: 59

        .= (( rng M) \ {( Line (M,i))}) by A5, A4, A6, MATRIX_0: 52;

        

        then

         A12: ( lines R) = ((( lines M) \ {( Line (M,i))}) \/ ( rng iL)) by A11, FRECHET: 12

        .= ((( lines M) \ {( Line (M,i))}) \/ {L}) by FUNCOP_1: 8;

        

         A13: Lj in ( lines M) by A2, A5, A4, MATRIX13: 103;

        Li in ( lines M) by A5, A4, A6, MATRIX13: 103;

        hence thesis by A8, A12, A13, A9, Th14;

      end;

    end;

    theorem :: MATRIX15:70

    

     Th70: for W be Subspace of (m -VectSp_over K) holds ex A be Matrix of ( dim W), m, K, N be without_zero finite Subset of NAT st N c= ( Seg m) & ( dim W) = ( card N) & ( Segm (A,( Seg ( dim W)),N)) = ( 1. (K,( dim W))) & ( the_rank_of A) = ( dim W) & ( lines A) is Basis of W

    proof

      let W be Subspace of (m -VectSp_over K);

      consider I be finite Subset of W such that

       A1: I is Basis of W by MATRLIN:def 1;

      I is linearly-independent by A1, VECTSP_7:def 3;

      then

      reconsider U = I as linearly-independent Subset of (m -VectSp_over K) by VECTSP_9: 11;

      defpred P[ set, set] means for A be Matrix of ( card I), m, K, B be Matrix of ( card I), m, K st $1 = A holds A is without_repeated_line & ( lines A) is linearly-independent & ( Lin ( lines A)) = ( (Omega). W);

      deffunc F( Matrix of ( card I), m, K, Nat, Nat, Element of K) = $1;

      consider M be Matrix of ( card I), m, K such that

       A2: M is without_repeated_line & ( lines M) = U by MATRIX13: 104;

      

       A3: for A9 be Matrix of ( card I), m, K, B9 be Matrix of ( card I), m, K st P[A9, B9] holds for a be Element of K holds for i, j st j in ( dom A9) & (i = j implies a <> ( - ( 1_ K))) holds P[( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j)))))), F(B9,i,j,a)]

      proof

        let A9 be Matrix of ( card I), m, K, B9 be Matrix of ( card I), m, K such that

         A4: P[A9, B9];

        

         A5: ( dom A9) = ( Seg ( len A9)) by FINSEQ_1:def 3;

        let a be Element of K;

        let i, j such that

         A6: j in ( dom A9) & (i = j implies a <> ( - ( 1_ K)));

        set R = ( RLine (A9,i,(( Line (A9,i)) + (a * ( Line (A9,j))))));

        

         A7: A9 is without_repeated_line by A4;

        then

         A8: ( Lin ( lines A9)) = ( Lin ( lines R)) by A6, Th69;

        ( lines A9) is linearly-independent by A4;

        

        then ( card I) = ( the_rank_of A9) by A7, MATRIX13: 121

        .= ( the_rank_of R) by A6, A5, MATRIX13: 92;

        hence thesis by A4, A8, MATRIX13: 121;

      end;

      ( Lin I) = the ModuleStr of W by A1, VECTSP_7:def 3;

      then

       A9: P[M, M] by A2, VECTSP_9: 17;

      consider A9 be Matrix of ( card I), m, K, B9 be Matrix of ( card I), m, K, N such that

       A10: N c= ( Seg m) and

       A11: ( the_rank_of M) = ( the_rank_of A9) & ( the_rank_of M) = ( card N) & P[A9, B9] and

       A12: ( Segm (A9,( Seg ( card N)),N)) = ( 1. (K,( card N))) and for i st i in ( dom A9) & i > ( card N) holds ( Line (A9,i)) = (m |-> ( 0. K)) and for i, j st i in ( Seg ( card N)) & j in ( Seg ( width A9)) & j < (( Sgm N) . i) holds (A9 * (i,j)) = ( 0. K) from GAUSS2( A9, A3);

      ( dim W) = ( card I) by A1, VECTSP_9:def 1;

      then

      reconsider A9 as Matrix of ( dim W), m, K;

      ( lines A9) c= the carrier of ( Lin ( lines A9)) by VECTSP_7: 8, STRUCT_0:def 5;

      then

      reconsider lA = ( lines A9) as linearly-independent Subset of W by A11, VECTSP_9: 12;

      take A9, N;

      

       A13: ( Lin lA) = ( Lin ( lines A9)) by VECTSP_9: 17;

      

       A14: ( the_rank_of M) = ( card I) by A2, MATRIX13: 121;

      

       A15: ( card I) = ( dim W) by A1, VECTSP_9:def 1;

      ( Lin ( lines A9)) = the ModuleStr of W by A11;

      hence thesis by A15, A10, A11, A12, A14, A13, VECTSP_7:def 3;

    end;

    theorem :: MATRIX15:71

    for W be strict Subspace of (m -VectSp_over K) st ( dim W) < m holds ex A be Matrix of (m -' ( dim W)), m, K, N be without_zero finite Subset of NAT st ( card N) = (m -' ( dim W)) & N c= ( Seg m) & ( Segm (A,( Seg (m -' ( dim W))),N)) = ( 1. (K,(m -' ( dim W)))) & W = ( Space_of_Solutions_of A)

    proof

      let W be strict Subspace of (m -VectSp_over K) such that

       A1: ( dim W) < m;

      per cases ;

        suppose

         A2: ( dim W) = 0 ;

        then (m -' ( dim W)) = m by NAT_D: 40;

        then

        reconsider ONE = ( 1. (K,m)) as Matrix of (m -' ( dim W)), m, K;

        take ONE, ( Seg m);

        

         A3: ( len ( 1. (K,m))) = m by MATRIX_0: 24;

        

         A4: ( dim ( Space_of_Solutions_of ONE)) = 0 by Lm8;

        

         A5: (m -' ( dim W)) = m by A2, NAT_D: 40;

        

         A6: ( width ( 1. (K,m))) = m by MATRIX_0: 24;

        ( Space_of_Solutions_of ONE) = ( (Omega). ( Space_of_Solutions_of ONE))

        .= ( (0). ( Space_of_Solutions_of ONE)) by A4, VECTSP_9: 29

        .= ( (0). W) by A6, VECTSP_4: 37

        .= ( (Omega). W) by A2, VECTSP_9: 29

        .= W;

        hence thesis by A5, A3, A6, FINSEQ_1: 57, MATRIX13: 46;

      end;

        suppose

         A7: ( dim W) > 0 ;

        set ZERO = ( 0. (K,(m -' ( dim W)),m));

        

         A8: (m - ( dim W)) > (( dim W) - ( dim W)) by A1, XREAL_1: 9;

        

         A9: (m -' ( dim W)) = (m - ( dim W)) by A1, XREAL_1: 233;

        then

         A10: ( len ZERO) = (m -' ( dim W)) & ( width ZERO) = m by A8, MATRIX_0: 23;

        

         A11: ( card ( Seg m)) = m by FINSEQ_1: 57;

        consider A be Matrix of ( dim W), m, K, N such that

         A12: N c= ( Seg m) and

         A13: ( dim W) = ( card N) and

         A14: ( Segm (A,( Seg ( dim W)),N)) = ( 1. (K,( dim W))) and ( the_rank_of A) = ( dim W) and

         A15: ( lines A) is Basis of W by Th70;

        set SA = ( Segm (A,( Seg ( dim W)),(( Seg m) \ N)));

        

         A16: ( card (( Seg m) \ N)) = (( card ( Seg m)) - ( card N)) by A12, CARD_2: 44;

        then

         A17: ( width SA) = (m - ( card N)) by A7, A11, MATRIX_0: 23;

        

         A18: ( card ( Seg ( dim W))) = ( dim W) by FINSEQ_1: 57;

        then ( len SA) = ( dim W) by A7, MATRIX_0: 23;

        then ( width (SA @ )) = ( dim W) by A13, A8, A17, MATRIX_0: 54;

        then

         A19: ( width ( - (SA @ ))) = ( dim W) by MATRIX_3:def 2;

        

         A20: ( card ( Seg (m -' ( dim W)))) = (m -' ( dim W)) by FINSEQ_1: 57;

        (m -' ( dim W)) = (m - ( dim W)) by A1, XREAL_1: 233;

        then

        reconsider CC = ( 1. (K,(m -' ( dim W)))) as Matrix of ( card ( Seg (m -' ( dim W)))), ( card (( Seg m) \ N)), K by A13, A16, A11, A20;

        

         A21: (( Seg m) \ (( Seg m) \ N)) = (( Seg m) /\ N) & (m -' (m -' ( dim W))) = (m - (m -' ( dim W))) by NAT_D: 35, XBOOLE_1: 48, XREAL_1: 233;

        

         A22: ( Indices ZERO) = [:( Seg (m -' ( dim W))), ( Seg m):] by A9, A8, MATRIX_0: 23;

        then

         A23: [:( Seg (m -' ( dim W))), N:] c= ( Indices ZERO) by A12, ZFMISC_1: 95;

        ( len (SA @ )) = (m - ( dim W)) by A13, A8, A17, MATRIX_0: 54;

        then ( len ( - (SA @ ))) = (m -' ( dim W)) by A9, MATRIX_3:def 2;

        then

        reconsider BB = ( - (SA @ )) as Matrix of ( card ( Seg (m -' ( dim W)))), ( card N), K by A13, A20, A19, MATRIX_0: 51;

        

         A24: N misses (( Seg m) \ N) by XBOOLE_1: 79;

        

         A25: (( Seg m) \ N) c= ( Seg m) by XBOOLE_1: 36;

        then

         A26: [:( Seg (m -' ( dim W))), (( Seg m) \ N):] c= ( Indices ZERO) by A22, ZFMISC_1: 95;

        ( [:( Seg (m -' ( dim W))), N:] /\ [:( Seg (m -' ( dim W))), (( Seg m) \ N):]) = [:( Seg (m -' ( dim W))), (N /\ (( Seg m) \ N)):] by ZFMISC_1: 99

        .= [:( Seg (m -' ( dim W))), {} :] by A24

        .= {} by ZFMISC_1: 90;

        then for i,j,bi,bj,ci,cj be Nat st [i, j] in ( [:( Seg (m -' ( dim W))), N:] /\ [:( Seg (m -' ( dim W))), (( Seg m) \ N):]) & bi = ((( Sgm ( Seg (m -' ( dim W)))) " ) . i) & bj = ((( Sgm N) " ) . j) & ci = ((( Sgm ( Seg (m -' ( dim W)))) " ) . i) & cj = ((( Sgm (( Seg m) \ N)) " ) . j) holds (BB * (bi,bj)) = (CC * (ci,cj));

        then

        consider M be Matrix of (m -' ( dim W)), m, K such that

         A27: ( Segm (M,( Seg (m -' ( dim W))),N)) = BB and

         A28: ( Segm (M,( Seg (m -' ( dim W))),(( Seg m) \ N))) = CC and for i, j st [i, j] in (( Indices M) \ ( [:( Seg (m -' ( dim W))), N:] \/ [:( Seg (m -' ( dim W))), (( Seg m) \ N):])) holds (M * (i,j)) = (ZERO * (i,j)) by A10, A23, A26, Th9;

        (( Seg m) /\ N) = N by A12, XBOOLE_1: 28;

        then

        consider MV be Matrix of ( dim W), m, K such that

         A29: ( Segm (MV,( Seg ( dim W)),N)) = ( 1. (K,( dim W))) and

         A30: ( Segm (MV,( Seg ( dim W)),(( Seg m) \ N))) = ( - (( Segm (M,( Seg (m -' ( dim W))),N)) @ )) and

         A31: ( Lin ( lines MV)) = ( Space_of_Solutions_of M) by A7, A13, A9, A8, A16, A11, A28, A21, Th67, XBOOLE_1: 36;

         A32:

        now

          

           A33: ( Indices A) = [:( Seg ( dim W)), ( Seg m):] by A7, MATRIX_0: 23;

          let i, j such that

           A34: [i, j] in ( Indices A);

          

           A35: i in ( Seg ( dim W)) by A34, A33, ZFMISC_1: 87;

          

           A36: ( Indices A) = ( Indices MV) by MATRIX_0: 26;

          

           A37: ( rng ( Sgm ( Seg ( dim W)))) = ( Seg ( dim W)) by FINSEQ_1:def 13;

          ( dom ( Sgm ( Seg ( dim W)))) = ( Seg ( dim W)) by A18, FINSEQ_3: 40;

          then

          consider x be object such that

           A38: x in ( Seg ( dim W)) and

           A39: (( Sgm ( Seg ( dim W))) . x) = i by A35, A37, FUNCT_1:def 3;

          reconsider x as Element of NAT by A38;

          

           A40: j in ( Seg m) by A34, A33, ZFMISC_1: 87;

          now

            per cases ;

              suppose

               A41: j in N;

              then

               A42: [i, j] in [:( Seg ( dim W)), N:] by A35, ZFMISC_1: 87;

              

               A43: ( rng ( Sgm N)) = N by A12, FINSEQ_1:def 13;

              ( dom ( Sgm N)) = ( Seg ( dim W)) by A12, A13, FINSEQ_3: 40;

              then

              consider y be object such that

               A44: y in ( Seg ( dim W)) and

               A45: (( Sgm N) . y) = j by A41, A43, FUNCT_1:def 3;

              reconsider y as Element of NAT by A44;

              

               A46: [:( Seg ( dim W)), N:] c= ( Indices A) by A12, A33, ZFMISC_1: 95;

              then

               A47: [x, y] in ( Indices ( Segm (MV,( Seg ( dim W)),N))) by A36, A37, A39, A43, A45, A42, MATRIX13: 17;

               [x, y] in ( Indices ( Segm (A,( Seg ( dim W)),N))) by A37, A39, A43, A45, A46, A42, MATRIX13: 17;

              

              hence (A * (i,j)) = (( Segm (MV,( Seg ( dim W)),N)) * (x,y)) by A14, A29, A39, A45, MATRIX13:def 1

              .= (MV * (i,j)) by A39, A45, A47, MATRIX13:def 1;

            end;

              suppose not j in N;

              then

               A48: j in (( Seg m) \ N) by A40, XBOOLE_0:def 5;

              then

               A49: [i, j] in [:( Seg ( dim W)), (( Seg m) \ N):] by A35, ZFMISC_1: 87;

              

               A50: ( rng ( Sgm (( Seg m) \ N))) = (( Seg m) \ N) by A25, FINSEQ_1:def 13;

              ( dom ( Sgm (( Seg m) \ N))) = ( Seg (m -' ( dim W))) by A13, A9, A16, A11, FINSEQ_3: 40, XBOOLE_1: 36;

              then

              consider y be object such that

               A51: y in ( Seg (m -' ( dim W))) and

               A52: (( Sgm (( Seg m) \ N)) . y) = j by A48, A50, FUNCT_1:def 3;

              reconsider y as Element of NAT by A51;

              

               A53: [:( Seg ( dim W)), (( Seg m) \ N):] c= ( Indices A) by A25, A33, ZFMISC_1: 95;

              then

               A54: [x, y] in ( Indices ( Segm (A,( Seg ( dim W)),(( Seg m) \ N)))) by A37, A39, A50, A52, A49, MATRIX13: 17;

              

               A55: [x, y] in ( Indices ( Segm (MV,( Seg ( dim W)),(( Seg m) \ N)))) by A36, A37, A39, A50, A52, A53, A49, MATRIX13: 17;

              then

               A56: [x, y] in ( Indices (( Segm (M,( Seg (m -' ( dim W))),N)) @ )) by A30, Lm1;

              then

               A57: [y, x] in ( Indices ( Segm (M,( Seg (m -' ( dim W))),N))) by MATRIX_0:def 6;

              then

               A58: [y, x] in ( Indices (SA @ )) by A27, Lm1;

              

              thus (MV * (i,j)) = (( - (( Segm (M,( Seg (m -' ( dim W))),N)) @ )) * (x,y)) by A30, A39, A52, A55, MATRIX13:def 1

              .= ( - ((( Segm (M,( Seg (m -' ( dim W))),N)) @ ) * (x,y))) by A56, MATRIX_3:def 2

              .= ( - (( - (SA @ )) * (y,x))) by A27, A57, MATRIX_0:def 6

              .= ( - ( - ((SA @ ) * (y,x)))) by A58, MATRIX_3:def 2

              .= ((SA @ ) * (y,x)) by RLVECT_1: 17

              .= (SA * (x,y)) by A54, MATRIX_0:def 6

              .= (A * (i,j)) by A39, A52, A54, MATRIX13:def 1;

            end;

          end;

          hence (A * (i,j)) = (MV * (i,j));

        end;

        then

        reconsider lA = ( lines MV) as Subset of W by A15, MATRIX_0: 27;

        take M, (( Seg m) \ N);

        MV = A by A32, MATRIX_0: 27;

        then ( Lin lA) = the ModuleStr of W by A15, VECTSP_7:def 3;

        hence thesis by A1, A13, A16, A11, A28, A31, VECTSP_9: 17, XBOOLE_1: 36, XREAL_1: 233;

      end;

    end;

    theorem :: MATRIX15:72

    

     Th72: for A,B be Matrix of K st ( width A) = ( len B) & (( width A) = 0 implies ( len A) = 0 ) & (( width B) = 0 implies ( len B) = 0 ) holds ( Space_of_Solutions_of B) is Subspace of ( Space_of_Solutions_of (A * B))

    proof

      let A,B be Matrix of K such that

       A1: ( width A) = ( len B) and

       A2: ( width A) = 0 implies ( len A) = 0 and

       A3: ( width B) = 0 implies ( len B) = 0 ;

      set AB = (A * B);

      

       A4: ( len AB) = ( len A) by A1, MATRIX_3:def 4;

      

       A5: ( width AB) = ( width B) by A1, MATRIX_3:def 4;

      then

      reconsider AB as Matrix of ( len A), ( width B), K by A4, MATRIX_0: 51;

      the carrier of ( Space_of_Solutions_of B) c= the carrier of ( Space_of_Solutions_of AB)

      proof

        let x be object;

        assume x in the carrier of ( Space_of_Solutions_of B);

        then x in ( Solutions_of (B,(( len B) |-> ( 0. K)))) by A3, Def5;

        then

        consider f such that

         A6: f = x and

         A7: ( ColVec2Mx f) in ( Solutions_of (B,( ColVec2Mx (( len B) |-> ( 0. K)))));

        consider X such that

         A8: X = ( ColVec2Mx f) and

         A9: ( len X) = ( width B) and

         A10: ( width X) = ( width ( ColVec2Mx (( len B) |-> ( 0. K)))) and

         A11: (B * X) = ( ColVec2Mx (( len B) |-> ( 0. K))) by A7;

        

         A12: ( ColVec2Mx (( len AB) |-> ( 0. K))) = ( 0. (K,( len A),1)) by A4, Th32;

        

         A13: ( ColVec2Mx (( len B) |-> ( 0. K))) = ( 0. (K,( len B),1)) by Th32;

        now

          per cases ;

            suppose ( len A) = 0 ;

            then ( Solutions_of (AB,( ColVec2Mx (( len AB) |-> ( 0. K))))) = { {} } & X = {} by A4, A5, A9, A12, Th51, MATRIX_0:def 3;

            hence X in ( Solutions_of (AB,( ColVec2Mx (( len AB) |-> ( 0. K))))) by TARSKI:def 1;

          end;

            suppose

             A14: ( len A) <> 0 ;

            

            then

             A15: ( width ( ColVec2Mx (( len AB) |-> ( 0. K)))) = 1 by A4, Th26

            .= ( width ( ColVec2Mx (( len B) |-> ( 0. K)))) by A1, A2, A14, Th26;

            ( ColVec2Mx (( len AB) |-> ( 0. K))) = (A * (B * X)) by A1, A2, A11, A13, A12, A14, MATRIXR2: 18

            .= (AB * X) by A1, A9, MATRIX_3: 33;

            hence X in ( Solutions_of (AB,( ColVec2Mx (( len AB) |-> ( 0. K))))) by A5, A9, A10, A15;

          end;

        end;

        then f in ( Solutions_of (AB,(( len AB) |-> ( 0. K)))) by A8;

        hence thesis by A1, A2, A3, A4, A5, A6, Def5;

      end;

      hence thesis by A5, VECTSP_4: 27;

    end;

    theorem :: MATRIX15:73

    for A,B be Matrix of K st ( width A) = ( len B) holds ( the_rank_of (A * B)) <= ( the_rank_of A) & ( the_rank_of (A * B)) <= ( the_rank_of B)

    proof

      let A,B be Matrix of K such that

       A1: ( width A) = ( len B);

      set AB = (A * B);

      

       A2: ( width AB) = ( width B) by A1, MATRIX_3:def 4;

      per cases ;

        suppose ( the_rank_of AB) = 0 ;

        hence thesis;

      end;

        suppose

         A3: ( the_rank_of AB) > 0 ;

        set AT = (A @ );

        

         A4: ( width AB) > 0 by A3, MATRIX13: 74;

        then

         A5: ( width A) > 0 by A1, A2, MATRIX_0:def 3;

        then

         A6: ( len AT) = ( width A) by MATRIX_0: 54;

        set BT = (B @ );

        set BA = (BT * AT);

        ( width AT) = ( len A) by A5, MATRIX_0: 54;

        then

         A7: ( width AT) = 0 implies ( len AT) = 0 by A5, MATRIX_0:def 3;

        then

         A8: ( dim ( Space_of_Solutions_of AT)) = (( width AT) - ( the_rank_of AT)) by Th68;

        

         A9: ( width BT) = ( len B) by A2, A4, MATRIX_0: 54;

        then ( width BT) = 0 implies ( len BT) = 0 by A2, A4, MATRIX_0:def 3;

        then

         A10: ( Space_of_Solutions_of AT) is Subspace of ( Space_of_Solutions_of BA) by A1, A6, A9, A7, Th72;

        

         A11: ( width BA) = ( width AT) by A1, A6, A9, MATRIX_3:def 4;

        then ( dim ( Space_of_Solutions_of BA)) = (( width BA) - ( the_rank_of BA)) by A5, A7, Th68, MATRIX_0: 54;

        then (( width AT) - ( the_rank_of AT)) <= (( width AT) - ( the_rank_of BA)) by A11, A10, A8, VECTSP_9: 25;

        then ( the_rank_of AT) >= ( the_rank_of BA) by XREAL_1: 10;

        then

         A12: ( the_rank_of A) >= ( the_rank_of BA) by MATRIX13: 84;

        ( width A) = 0 implies ( len A) = 0 by A1, A2, A4, MATRIX_0:def 3;

        then

         A13: ( Space_of_Solutions_of B) is Subspace of ( Space_of_Solutions_of AB) by A1, A2, A4, Th72;

        ( dim ( Space_of_Solutions_of B)) = (( width B) - ( the_rank_of B)) & ( dim ( Space_of_Solutions_of AB)) = (( width AB) - ( the_rank_of AB)) by A2, A4, Th68;

        then

         A14: (( width B) - ( the_rank_of B)) <= (( width B) - ( the_rank_of AB)) by A2, A13, VECTSP_9: 25;

        BA = (AB @ ) by A1, A2, A4, MATRIX_3: 22;

        hence thesis by A14, A12, MATRIX13: 84, XREAL_1: 10;

      end;

    end;

    theorem :: MATRIX15:74

    

     Th74: for A be Matrix of n, n, K, B be Matrix of K st ( Det A) <> ( 0. K) & ( width A) = ( len B) & (( width B) = 0 implies ( len B) = 0 ) holds ( Space_of_Solutions_of B) = ( Space_of_Solutions_of (A * B))

    proof

      let A be Matrix of n, n, K, B be Matrix of K such that

       A1: ( Det A) <> ( 0. K) and

       A2: ( width A) = ( len B) and

       A3: ( width B) = 0 implies ( len B) = 0 ;

      set AB = (A * B);

      

       A4: ( len AB) = ( len A) by A2, MATRIX_3:def 4;

      

       A5: ( width AB) = ( width B) by A2, MATRIX_3:def 4;

      

       A6: ( len A) = n by MATRIX_0: 24;

      reconsider AB as Matrix of n, ( width B), K by A4, A5, MATRIX_0: 24, MATRIX_0: 51;

      

       A7: ( width A) = n by MATRIX_0: 24;

      

       A8: the carrier of ( Space_of_Solutions_of AB) c= the carrier of ( Space_of_Solutions_of B)

      proof

        A is invertible by A1, LAPLACE: 34;

        then A is_reverse_of (A ~ ) by MATRIX_6:def 4;

        then

         A9: ( 1. (K,n)) = ((A ~ ) * A) by MATRIX_6:def 2;

        

         A10: ( len (A ~ )) = n by MATRIX_0: 24;

        let x be object;

        assume x in the carrier of ( Space_of_Solutions_of AB);

        then x in ( Solutions_of (AB,(( len AB) |-> ( 0. K)))) by A2, A3, A6, A7, A4, A5, Def5;

        then

        consider f such that

         A11: f = x and

         A12: ( ColVec2Mx f) in ( Solutions_of (AB,( ColVec2Mx (( len AB) |-> ( 0. K)))));

        consider X such that

         A13: X = ( ColVec2Mx f) and

         A14: ( len X) = ( width AB) and

         A15: ( width X) = ( width ( ColVec2Mx (( len AB) |-> ( 0. K)))) and

         A16: (AB * X) = ( ColVec2Mx (( len AB) |-> ( 0. K))) by A12;

        

         A17: ( width (A ~ )) = n by MATRIX_0: 24;

        set BX = (B * X);

        

         A18: ( len BX) = ( len B) by A5, A14, MATRIX_3:def 4;

        

        then

         A19: BX = (( 1. (K,n)) * BX) by A2, A7, MATRIXR2: 68

        .= ((A ~ ) * (A * BX)) by A2, A6, A9, A17, A18, MATRIX_3: 33

        .= ((A ~ ) * ( ColVec2Mx (( len AB) |-> ( 0. K)))) by A2, A5, A14, A16, MATRIX_3: 33

        .= ((A ~ ) * ( 0. (K,( len AB),1))) by Th32;

        now

          per cases ;

            suppose

             A20: n = 0 ;

            then ( 0. (K,( len AB),1)) = {} by A6, A4;

            hence BX = ( 0. (K,( len AB),1)) by A2, A18, A20, MATRIX_0: 24;

          end;

            suppose n > 0 ;

            hence BX = ( 0. (K,( len AB),1)) by A6, A4, A10, A17, A19, MATRIXR2: 18;

          end;

        end;

        then BX = ( ColVec2Mx (( len AB) |-> ( 0. K))) by Th32;

        then ( ColVec2Mx f) in ( Solutions_of (B,( ColVec2Mx (( len B) |-> ( 0. K))))) by A2, A6, A7, A4, A5, A13, A14, A15;

        then f in ( Solutions_of (B,(( len B) |-> ( 0. K))));

        hence thesis by A3, A11, Def5;

      end;

      ( width A) = 0 implies ( len A) = 0 by A6, MATRIX_0: 24;

      then ( Space_of_Solutions_of B) is Subspace of ( Space_of_Solutions_of (A * B)) by A2, A3, Th72;

      then the carrier of ( Space_of_Solutions_of B) c= the carrier of ( Space_of_Solutions_of (A * B)) by VECTSP_4:def 2;

      then the carrier of ( Space_of_Solutions_of B) = the carrier of ( Space_of_Solutions_of (A * B)) by A8;

      hence thesis by A5, VECTSP_4: 29;

    end;

    theorem :: MATRIX15:75

    

     Th75: for A be Matrix of n, n, K, B be Matrix of K st ( width A) = ( len B) & ( Det A) <> ( 0. K) holds ( the_rank_of (A * B)) = ( the_rank_of B)

    proof

      let A be Matrix of n, n, K, B be Matrix of K such that

       A1: ( width A) = ( len B) and

       A2: ( Det A) <> ( 0. K);

      set AB = (A * B);

      

       A3: ( len AB) = ( len A) by A1, MATRIX_3:def 4;

      

       A4: ( len A) = n & ( width A) = n by MATRIX_0: 24;

      

       A5: ( width AB) = ( width B) by A1, MATRIX_3:def 4;

      per cases ;

        suppose ( width AB) = 0 ;

        hence thesis by A1, A3, A5, A4, Lm3;

      end;

        suppose

         A6: ( width AB) > 0 ;

        then ( Space_of_Solutions_of B) = ( Space_of_Solutions_of AB) & ( dim ( Space_of_Solutions_of B)) = (( width B) - ( the_rank_of B)) by A1, A2, A5, Th68, Th74;

        then (( width B) - ( the_rank_of B)) = (( width B) - ( the_rank_of AB)) by A5, A6, Th68;

        hence thesis;

      end;

    end;

    theorem :: MATRIX15:76

    for A be Matrix of n, n, K, B be Matrix of K st ( len A) = ( width B) & ( Det A) <> ( 0. K) holds ( the_rank_of (B * A)) = ( the_rank_of B)

    proof

      let A be Matrix of n, n, K, B be Matrix of K such that

       A1: ( width B) = ( len A) and

       A2: ( Det A) <> ( 0. K);

      set BA = (B * A);

      

       A3: ( len BA) = ( len B) by A1, MATRIX_3:def 4;

      

       A4: ( width BA) = ( width A) by A1, MATRIX_3:def 4;

      

       A5: ( len A) = n & ( width A) = n by MATRIX_0: 24;

      per cases ;

        suppose ( width BA) = 0 ;

        hence thesis by A1, A3, A4, A5, Lm3;

      end;

        suppose

         A6: ( width BA) > 0 ;

        then

         A7: ( width (A @ )) = ( len A) & ( len (B @ )) = ( width B) by A1, A4, A5, MATRIX_0: 54;

        

         A8: ( Det (A @ )) <> ( 0. K) by A2, MATRIXR2: 43;

        

        thus ( the_rank_of (B * A)) = ( the_rank_of ((B * A) @ )) by MATRIX13: 84

        .= ( the_rank_of ((A @ ) * (B @ ))) by A1, A4, A6, MATRIX_3: 22

        .= ( the_rank_of (B @ )) by A1, A8, A7, Th75

        .= ( the_rank_of B) by MATRIX13: 84;

      end;

    end;