apalache
apalache copied to clipboard
Revisit/refactor caching
Recent refactoring has uncovered that caches are often not being hit consistently. The reason for this is a type-tag check in the cache lookup, which often fails, as internally TLA expressions are constructed with an untyped builder (as opposed to ScopedBuilder
used in the refactored files, which type-tags all values generated with Typed(_)
). Additionally, caches lack a solid test suite.
Hitting caches consistently also highlights correctness bugs (e.g. #2338).