Comments (7)
I thought about it when writing it but from what I understand there will be problems only if a problem make use of bitvectors whose size is strictly greater than 2 ^ 62
, (in which case, I don't think parsing such a bitvector litteral will be realistic, so only symbolic manipulation may be done, but I guess this can happen ?), or am I missing something ?
from dolmen.
No, just a bitvector of size 62, it is the actual value of the bitvector that goes through int_of_string
not just the size.
from dolmen.
(define-fun big () (_ BitVec 334) (_ bv9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 334))
from dolmen.
Oh, indeed that's a problem. We'll have to write a manual conversion to strings in that case (I'd rather avoid depending on zarith for now if not absolutely necessary).
from dolmen.
So https://stackoverflow.com/a/11007021/1531323 for direct conversion to binary ?
from dolmen.
For reference the code with zarith (for COLIBRI I fixed it that way temporarily):
let parse_extended_lit _env _ast s n =
assert (String.length s >= 2);
let s' = String.sub s 2 (String.length s - 2) in
match Z.of_string s' with
| exception Failure _ -> None
| z ->
let z = Z.rem z (Z.shift_left Z.one n) in
let s'' = Z.format (Printf.sprintf "%%0%ib" n) z in
Some (Type.Term (T.mk_bitv s''))
from dolmen.
So https://stackoverflow.com/a/11007021/1531323 for direct conversion to binary ?
Yes, i'll try and implement it as soon as possible.
from dolmen.
Related Issues (20)
- Additional builtins in the State? HOT 1
- Wrong check-model
- Bitvectors of size 0 should be forbidden
- Ill-typed statement on Bitvector is accepted by Dolmen HOT 1
- Expose `with_cache`? HOT 1
- Support Alt-Ergo's `cut` and `check` HOT 12
- Add authors files
- Unclear error message during model checking HOT 7
- Spec errors on the difference logic benchmarks of the SMT-LIB HOT 2
- Reject names starting with `@` and `.` outside of models
- Handling of `set-option :global-declarations`
- Handling of named terms HOT 2
- Check sat assuming HOT 2
- DIMACS variables do not appear as decls HOT 1
- Uncaught exception on buggy file
- 4.08 support broken (`List.concat_map`) HOT 10
- Quoted identifiers can be keywords HOT 12
- Warning regarding the `dolmen_type` file HOT 2
- Support non-incremental parsing from stdin HOT 1
- Handling abstract values in `(get-value)` statements HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dolmen.