// Functions used in paper 9: // _When is projectivity detected on subalgebras?_ by Jon F. Carlson // Section 2: Criterion for projectivity IsProjective := function(M, L, n) V := VectorSpace(BaseRing(L[1]), Dimension(M)); S := &+[ sub< V | RowSpace(x) > : x in L ]; if (Dimension(M) - Dimension(S))*n eq Dimension(M) then return true; end if; return false; end function;