-- Although InnerPrimeField does what you want, you should know that -- constructor names starting with Inner... are intended for internal -- (i.e. for developers) use only. -- As ordinary user you should rather rely on PrimeField or be aware -- that and Inner... constructor may disappear from a future version -- or slightly change its behaviour. F := PrimeField 19; sol(fp, a, b) == (_ x := (solve(a :: SquareMatrix(4, F), b::Vector(F))).particular; if x case "failed" then vector [0,0,0,0] else x::Vector(F)) fp : File List F := open("file.out", "output"); wsol(fp, [[1,13,14,15],[1,11,18,4],[1,14,10,4],[1,6,17,16]], [13,8,6,14]); wsol(fp, [[17,13,14,15],[17,11,18,4],[17,14,10,4],[17,6,17,16]], [13,8,6,14]); wsol(fp, [[2,13,0,7],[15,7,6,13],[11,0,14,2],[12,3,2,10]], [15,15,4,12]); wsol(fp, [[14,3,12,15],[11,15,0,14],[17,16,1,13],[4,5,15,17]], [10,10,12,6]); wsol(fp, [[3,8,10,2],[8,14,16,0],[9,5,12,14],[5,2,1,5]], [15,8,11,3]); close! (fp);