shingarov / MachineArithmetic

A mathematical foundation for Smalltalk-25
MIT License
17 stars 6 forks source link

Generalize termination metrics to BitVectors #246

Closed shingarov closed 8 months ago

shingarov commented 8 months ago

In the Gauss example, sum(n) terminates /n. As all TRIL scalars are machine word bitvectors, TRIL sum can only be something like bv32→bv32. Currently, a termination metric can't be anything other than int, so we are forced to call Z3_mk_bv2int which means switching from the fast bit-fiddling SAT solver to the general uninterpreted/incremental SMT core.