Algebra.RatRational-number semiring: (ℚ, +, ×, 0, 1).
Rationals are represented as arbitrary-precision Q.t values (from the zarith library). The semiring is unbounded and infinite, so elements is not supported.
SMT encoding represents each rational as a pair of integer symbols (numerator, denominator) with constraint den > 0, then lifts addition and multiplication via cross-multiplication. Equality and ordering become cross-multiplication comparisons, keeping the SMT fragment to QF_NIA (non-linear integer arithmetic).
module Log : sig ... endmodule T : sig ... endinclude sig ... endval comparator : (T.t, comparator_witness) Base__Comparator.comparatormodule SMT : sig ... end