mult_Esr_left: LEMMA rows(D)=pn AND i<pn IMPLIES Esr(pn)(i,r)*D = replace_row(i,r*row(D)(i))(D)
mult_Esr_Esr_inv: LEMMA r/=0 AND i<pn IMPLIES Esr(pn)(i,r)*Esr(pn)(i,1/r)=Id(pn)
Ers(pn)(i,j): {M:SquareMatrix(pn)|M=swap(i,j)(Id(pn))} =
form_matrix(LAMBDA (k,p:nat): IF k=i AND p=j THEN 1 ELSIF k=j AND p=i THEN 1 ELSIF k/=i AND k/=j AND k=p THEN 1 ELSE 0 ENDIF,pn,pn)
entry_Ers: LEMMA entry(Ers(pn)(i,j))(k,p) = IF k>=pn OR p>=pn THEN 0 ELSIF k=i AND p=j THEN 1 ELSIF k=j AND p=i THEN 1 ELSIF k/=i AND k/=j AND k=p THEN 1 ELSE 0 ENDIF
rows_Ers: LEMMA rows(Ers(pn)(i,j)) = pn
columns_Ers: LEMMA columns(Ers(pn)(i,j)) = pn
mult_Ers_left: LEMMA rows(D)=pn AND i<pn AND j<pn IMPLIES
Ers(pn)(i,j)*D = swap(i,j)(D)
det_Ers: LEMMA i<pn AND j<pn IMPLIES
det(Ers(pn)(i,j)) = IF i = j THEN 1 ELSE -1 ENDIF
mult_Ers_Ers_inv: LEMMA i<pn AND j<pn IMPLIES
Ers(pn)(i,j)*Ers(pn)(i,j) = Id(pn)
Easr(pn)(i,j,r): SquareMatrix(pn) =
form_matrix(LAMBDA (k,p:nat): IF k=i THEN (IF j=i AND p=i THEN 1+r ELSIF p=i THEN 1 ELSIF p=j THEN r ELSE 0 ENDIF) ELSIF k=p THEN 1 ELSE 0 ENDIF,pn,pn)
entry_Easr: LEMMA entry(Easr(pn)(i,j,r))(k,p) = IF k>=pn OR p>=pn THEN 0 ELSIF k=i THEN (IF j=i AND p=i THEN 1+r ELSIF p=i THEN 1 ELSIF p=j THEN r ELSE 0 ENDIF) ELSIF k=p THEN 1 ELSE 0 ENDIF
rows_Easr: LEMMA rows(Easr(pn)(i,j,r)) = pn
columns_Easr: LEMMA columns(Easr(pn)(i,j,r)) = pn
mult_Easr_left: LEMMA rows(D)=pn AND i<pn AND j<pn IMPLIES
Easr(pn)(i,j,r)*D = replace_row(i,row(D)(i)+r*row(D)(j))(D)
upper_triangular?(M): bool = FORALL (i,j): i>j AND i<rows(M) IMPLIES entry(M)(i,j)=0
prod_diag((M|rows(M)>0),i): RECURSIVE real = IF i >=rows(M)-1 THEN entry(M)(rows(M)-1,rows(M)-1) ELSE entry(M)(i,i)*prod_diag(M,i+1) ENDIFMEASURE max(rows(M)-i,0)
transpose_prod_mat: LEMMAFORALL (FM:[nat->SquareMatrix(pn)]):
transpose(prod_mat(pn)(FM,k)) = prod_mat(pn)(LAMBDA (i): IF i<=k THEN
transpose(FM(k-i)) ELSE FM(i) ENDIF,k)
is_simple_seq?(pn)(FM:[nat->SquareMatrix(pn)],k,include_scals,include_swaps):bool = FORALL (p): FM(p)=Id(pn) OR
(include_swaps ANDEXISTS (i,j): i<pn AND j<pn AND FM(p)=Ers(pn)(i,j)) OR
(EXISTS (i,j,r): i<pn AND j<pn AND i/=j AND FM(p) = Easr(pn)(i,j,r)) OR
(include_scals ANDEXISTS (i,r): i<pn AND FM(p) = Esr(pn)(i,r))
is_simple_prod?(pn,include_scals,include_swaps)(SQ:SquareMatrix(pn)): bool = EXISTS (FM:[nat->SquareMatrix(pn)],k): is_simple_seq?(pn)(FM,k,include_scals,include_swaps) AND SQ = prod_mat(pn)(FM,k)
mult_simple_prod: LEMMAFORALL (R,S:SquareMatrix(pn)):
is_simple_prod?(pn,include_scals,include_swaps)(R) AND
is_simple_prod?(pn,include_scals,include_swaps)(S) IMPLIES
is_simple_prod?(pn,include_scals,include_swaps)(R*S)
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.