% Linear Algebra library % Heber Herencia-Zapana NIA % Gilberto Pérez University of Coruña Spain % Pablo Ascariz University of Coruña Spain % Felicidad Aguado University of Coruña Spain % Date: December, 2013
%-------------------------------------------------------------------------------------- % Multiplying a matrix and the zero vector yields the zero vector %--------------------------------------------------------------------------------------
matrix_prod_zero: LEMMAFORALL (A:Matrix): A * zero[A`cols] = zero[A`rows]
%-------------------------------------------------------------------------------------- % Rows and cols of a subtraction of matrices %--------------------------------------------------------------------------------------
minus_rows: LEMMAFORALL (A:Matrix,B: (same_dim?(A))): (A - B)`rows = A`rows
minus_cols: LEMMAFORALL (A:Matrix,B: (same_dim?(A))): (A - B)`cols = A`cols
%-------------------------------------------------------------------------------------- % Rows and cols of the transpose matrix %--------------------------------------------------------------------------------------
%-------------------------------------------------------------------------------------- % Rows and cols of a product of matrices %--------------------------------------------------------------------------------------
product_rows3: LEMMAFORALL (A: Matrix,(B: Matrix | B`rows = A`cols),(C: Matrix | C`rows = B`cols),(D: Matrix | D`rows = C`cols)): (A * B * C * D)`rows = A`rows
product_cols3: LEMMAFORALL (A: Matrix,(B: Matrix | B`rows = A`cols),(C: Matrix | C`rows = B`cols),(D: Matrix | D`rows = C`cols)): (A * B * C * D)`cols = D`cols
product_rows4: LEMMAFORALL (A: Matrix,(B: Matrix | B`rows = A`cols),(C: Matrix | C`rows = B`cols),(D: Matrix | D`rows = C`cols),(E: Matrix | E`rows = D`cols)): (A * B * C * D * E)`rows = A`rows
product_cols4: LEMMAFORALL (A: Matrix,(B: Matrix | B`rows = A`cols),(C: Matrix | C`rows = B`cols),(D: Matrix | D`rows = C`cols),(E: Matrix | E`rows = D`cols)): (A * B * C * D * E)`cols = E`cols
%-------------------------------------------------------------------------------------- % Multiplying a matrix by its inverse yields the identity matrix %--------------------------------------------------------------------------------------
inverse_ident: LEMMAFORALL (N: (invertible?)): inverse(N) * N = I(N`rows)
ident_inverse: LEMMAFORALL (N: (invertible?)): N * (inverse(N)) = I(N`rows)
%-------------------------------------------------------------------------------------- % Multiplying the identity matrix by a vector yields the vector %--------------------------------------------------------------------------------------
ident_mat_prod: LEMMAFORALL (n: posnat, x: Vector[n]): matrices.I(n) * x = x
%-------------------------------------------------------------------------------------- % Rows and cols of the inverse matrix %--------------------------------------------------------------------------------------
%-------------------------------------------------------------------------------------- % The transpose of the identity matrix is the identity matrix %--------------------------------------------------------------------------------------
%-------------------------------------------------------------------------------------- % Auxiliary lemmas to make further calculations eaiser with no other interest %--------------------------------------------------------------------------------------
invar_inverse: LEMMAFORALL (A: Matrix, (N: (invertible?) | A`cols = N`rows)):
A * (inverse(N) * N) = A
invar_inverse_left: LEMMAFORALL (B: Matrix, (N: (invertible?) | B`rows = N`cols)):
N * (inverse(N)) * B = B
simply1_mat_vect: LEMMAFORALL (A: Matrix, (N: (invertible?) | A`cols = N`rows), y: Vector[A`rows], x: Vector[A`cols]):
y * ((A * (inverse(N) * N)) * x) = y * (A * x)
simply2_mat_vect: LEMMAFORALL (B: Matrix, (N: (invertible?) | B`rows = N`rows), y: Vector[B`rows], x: Vector[B`cols]):
y * (N * (inverse(N)) * B * x) = y * (B * x)
%-------------------------------------------------------------------------------------- % Distributive rules for matrices and vectors %--------------------------------------------------------------------------------------
distr_mat_vect: LEMMAFORALL (A: Matrix, (B: (same_dim?(A))), y: Vector[A`cols]):
(A + B) * y = A * y + B * y
distr_vect_mat: LEMMAFORALL (A: Matrix, x, y: Vector[A`cols]):
A * x + A * y = A * (x + y)
%-------------------------------------------------------------------------------------- % Technical lemmas about applying "minus" to matrices %--------------------------------------------------------------------------------------
matrix_sum_minus: LEMMAFORALL (A: Matrix, (B: (same_dim?(A)))): A - B = A + (-B)
%-------------------------------------------------------------------------------------- % Some more distributive rules for matrices and vectors %--------------------------------------------------------------------------------------
distr_esc_add: LEMMAFORALL (A: Matrix, (B: (same_dim?(A))), x:Vector[A`rows], y:Vector[A`cols]):
x * ((A + B) * y) = x * (A * y) + x * (B * y)
distr_esc_dif: LEMMAFORALL (A: Matrix, (B: (same_dim?(A))), x:Vector[A`rows], y:Vector[A`cols]):
x * ((A - B) * y) = x * (A * y) - x * (B * y)
distr_add_esc: LEMMAFORALL (A: (square?), x:Vector[A`cols], y:Vector[A`cols]):
(x + y) * (A * (x + y)) = x * (A * x) + x * (A * y) + y * (A * x) + y * (A * y)
%-------------------------------------------------------------------------------------- % Auxiliary lemma to make further calculations easier (aimed at Schur formula) %--------------------------------------------------------------------------------------
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.