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
refactor(tests): distinguish -fail (program error) from -unsupported (missing semantics)
Rename 19 prove-rs test files from `-fail` to `-unsupported` to clarify
that they fail because the semantics doesn't support the feature yet,
not because the program itself is expected to fail. Revert unrelated
K semantics changes (float support, priority annotations) to match
origin/master.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The local data has to be set up for the call, which requires information about the local variables of a call. This step is separate from the above call stack setup because it needs to retrieve the locals declaration from the body. Arguments to the call are `Operands` which refer to the old locals (`OLDLOCALS` below), and the data is either _copied_ into the new locals using `#setArgs`, or it needs to be _shared_ via references.
[preserves-definedness] // OP known to be a comparison
2217
2143
```
2218
2144
2219
-
Types that are equivlance relations can implement [Eq](https://doc.rust-lang.org/std/cmp/trait.Eq.html),
2220
-
and then they may implement [Ord](https://doc.rust-lang.org/std/cmp/trait.Ord.html) for a total ordering.
2221
-
For types that implement `Ord` the `cmp` method must be implemented which can compare any two elements respective to their total ordering.
2222
-
Here we provide the `binOpCmp` for `Bool` and `Int` operation which returns `-1`, `0`, or `+1` (the behaviour of Rust's `std::cmp::Ordering as i8`),
2223
-
indicating `LE`, `EQ`, or `GT`.
2145
+
The `binOpCmp` operation returns `-1`, `0`, or `+1` (the behaviour of Rust's `std::cmp::Ordering as i8`), indicating `LE`, `EQ`, or `GT`.
2224
2146
2225
2147
```k
2226
2148
syntax Int ::= cmpInt ( Int , Int ) [function , total]
@@ -2255,11 +2177,7 @@ The semantics of the operation in this case is to wrap around (with the given bi
2255
2177
...
2256
2178
</k>
2257
2179
2258
-
rule <k> #applyUnOp(unOpNeg, Float(VAL, WIDTH))
2259
-
=>
2260
-
Float(--Float VAL, WIDTH)
2261
-
...
2262
-
</k>
2180
+
// TODO add rule for Floats once they are supported.
2263
2181
```
2264
2182
2265
2183
The `unOpNot` operation works on boolean and integral values, with the usual semantics for booleans and a bitwise semantics for integral values (overflows cannot occur).
0 commit comments