Commit a96eba0
keep cache and constraint store after recursion, revert state on exceptions (#3929)
Previously we were discarding any simplifications cached during
recursive simplification.
This is overly cautious - while the change flag and the term stack (for
iteration count and loop detection) should be restored, the cache
remains valid (we may only _gain_ new path conditions, and only in rare
cases where equations have an `ensures` clause), and continues to be
useful when the same or a similar recursive evaluation is needed.
This change sped up a particular request extracted from an `mx-backend`
proof from 5 minutes to 5 seconds.
---------
Co-authored-by: rv-jenkins <[email protected]>1 parent 50f4a48 commit a96eba0
File tree
4 files changed
+15
-38
lines changed- booster
- library/Booster/Pattern
- test/rpc-integration/test-log-simplify-json
- scripts
4 files changed
+15
-38
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
| 87 | + | |
87 | 88 | | |
88 | | - | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
89 | 96 | | |
90 | 97 | | |
91 | 98 | | |
| |||
965 | 972 | | |
966 | 973 | | |
967 | 974 | | |
968 | | - | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
969 | 978 | | |
0 commit comments