Here we explain how to use the function "zariskiclosure" for computing the Zariski closure of a finitely generated rational matrix group. The algorithm is explained in the paper Computing the Zariski closure of a finitely generated matrix group, arXiv:2505.02577 [math.GR] This function is implemented in OSCAR. There are two files: * multrel.jl - which contains a function written in the Julia part of OSCAR * zarclos.g - which has the functions written in GAP. The main function is * zariskiclosure( mats ) Here mats is a list of invertible nxn matrices with entries in Q. The function returns a list [ L, cc ] with two elements: L is a matrix Lie algebra, and cc is a list of matrices. Here L is the Lie algebra of the smallest algebraic group G in GL(n,C) containing the matrices mats. Furthermore, cc is a list of matrices having one element of each component of G. Example: julia> using Oscar ___ ___ ___ _ ____ / _ \ / __\ / __\ / \ | _ \ | Combining and extending ANTIC, GAP, | |_| |\__ \| |__ / ^ \ | ยด / | Polymake and Singular \___/ \___/ \___//_/ \_\|_|\_\ | Type "?Oscar" for more information o--------o-----o-----o--------o | Documentation: https://docs.oscar-system.org S Y M B O L I C T O O L S | 1.7.0-DEV #master 3a79eeb 2025-12-17 julia> include("multrel.jl"); julia> GAP.prompt() gap> Read("zarclos.g"); gap> mats:= [ [ [ 0, 0, -1, 0, 0, 0, 0, 0 ], [ -1, 0, 0, -3, 0, 0, 0, 0 ], > [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, -1, -3, 0, 0, 0, 0, 0 ], > [ 0, 0, 0, 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, -1, 0, 0, -3 ], > [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 0, -1, -3, 0 ] ], > [ [ 0, 0, 0, 0, -3, 9, -1, 3 ], [ 0, 0, 0, 0, -1, 3, 0, 0 ], > [ 0, 0, 0, 0, 0, -3, 0, 1 ], [ 0, 0, 0, 0, 0, -1, 0, 0 ], > [ -3, 9, -1, 3, 0, 0, 0, 0 ], [ -1, 3, 0, 0, 0, 0, 0, 0 ], > [ 0, -3, 0, 1, 0, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0, 0, 0 ] ] ];; gap> z:= zariskiclosure( mats ); [ , [ [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ], [ [ 0, 0, 0, 0, -3, 9, -1, 3 ], [ 0, 0, 0, 0, -1, 3, 0, 0 ], [ 0, 0, 0, 0, 0, -3, 0, 1 ], [ 0, 0, 0, 0, 0, -1, 0, 0 ], [ -3, 9, -1, 3, 0, 0, 0, 0 ], [ -1, 3, 0, 0, 0, 0, 0, 0 ], [ 0, -3, 0, 1, 0, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0, 0, 0 ] ] ] ] gap> LieSolvableRadical( z[1] ); gap> SemiSimpleType(z[1]); "B2" Remark: the implementation is "experimental" and can certainly be dramatically improved in a number of ways.