Skip to content

Commit

Permalink
Revise the guide: Rosette Essentials, sections 3.4.0-3.4.2.
Browse files Browse the repository at this point in the history
  • Loading branch information
emina committed Jan 29, 2021
1 parent 7f8cc7e commit 9348350
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion rosette/guide/scribble/essentials/essentials.scrbl
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ But this approximation comes with a downside. Because it is unsound, queries may
(code:line (time (verify (check-mid-slow bvmid l h))) (code:comment "Loss of soundness!"))]


Navigating this tradeoff between performance and soundness can be tricky. So, when possible, it is best to set @racket[current-bitwidth] to @racket[#f] and limit the use of integers to code that will be evaluated concretely. This approach works well with solvers that reject queries with integers (e.g., @racket[boolector]), so if any make it into a query, the solver fails fast:
Navigating this tradeoff between performance and soundness can be tricky. So, when possible, it is best to set @racket[current-bitwidth] to @racket[#f] and limit the use of integers to code that will be evaluated concretely. This approach works well with solvers that reject queries over symbolic integers (e.g., @racket[boolector]), so if any have made it into a query, the solver fails fast:
@interaction[#:eval rosette-eval
(current-bitwidth #f)
(require rosette/solver/smt/boolector)
Expand Down

0 comments on commit 9348350

Please sign in to comment.