Such systems have infinitely many solutions (since you can multiply by constant or linearly combine the solutions you obtain). Let’s say I obtained a real solution in the form of vector v. I’m looking for a method to transform v such that all of its elements are integers, and ideally, that such solution is minimal required (e.g. (1, 2, 2) and not (2, 4, 4)).
The LLLplus.jl package has a couple of LLL functions that may be useful. I haven’t looked recently at how much you’d have to modify them to get the “Modified LLL” of Phost, assuming it solves the problem you’re looking at
It turns out that what I was looking for is reduced row-echelon form over Z, which is already implemented in AbstractAlgebra, Nemo and Hecke packages (this discussion helped me find it: Rank is wrong for Rational matrices).
I ended up using AbstractAlgebra, since it’s pure Julia and the most convenient to use.