load("__common__.sage")12def generator():3# create a mxn standard matrix4columns = randrange(3,5)5rows = choice([7,8])-columns6A = random_matrix(QQ,rows,columns,algorithm='echelonizable',rank=choice([min(rows,columns),min(rows,columns)-1]),upper_bound=9)789if len(A.pivots())==columns:10injective=true11else:12injective=false1314if len(A.pivots())==rows:15surjective=true16else:17surjective=false1819return {20"matrix": A,21"columns": columns,22"rows": rows,23"rref": A.rref(),24"injective": injective,25"surjective": surjective26}272829