You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HOTFIX: avoid bitRangeInt function for branching (#switchInt) (#732)
The [`bitRangeInt` equation in
`domains.md`](https://github.com/runtimeverification/k/blob/c376de7d91e5f14cff13b7e32e1c997983a2859b/k-distribution/include/kframework/builtin/domains.md?plain=1#L1438)
uses partial bit-shift symbols and is therefore not applied by booster.
A better alternative is to use the `truncate` function locally defined
in `mir-semantics`. Expressions are equivalent:
```
bitRangeInt(VAL, 0, WIDTH)
(def) == (VAL >>Int 0) modInt (1 <<Int WIDTH)
(>> 0) == VAL modInt (1 <<Int WIDTH)
(mod via mask) == VAL &Int ((1<<Int WIDTH) -Int 1) == truncate(VAL, WIDTH, Unsigned)
```
Also marking some relevant simplifications as smt-lemmas.
Altogether, this avoids a number of observed fall-backs in p-token
execution.
0 commit comments