let lcm a b = Z.divexact (Z.mul a b) (Z.gcd a b)