Skip to content

recursive operator issue #1096

Answered by Kukovec
timimin asked this question in Q&A
Discussion options

You must be logged in to vote

Hi @timimin!

A couple of things:

  • Primarily, the problem is, that you're trying to define your own FoldSet operator, instead of using the one defined in the Apalache module. All you need to do is add EXTENDS Apalache and use it in the same way you use FoldSet now (it does not need UNROLL_... operators). See https://apalache.informal.systems/docs/apalache/fold.html for more details on the FoldSet defined in Apalache.
  • The reason why UNROLL_DEFAULT_ and UNROLL_TIMES_ must be given, when defining recursive operators, is that Apalache does not dynamically evaluate expressions like TLC does, but instead represents them as symbolic constraints passed to an SMT solver. In the case of recursive op…

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Answer selected by timimin
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants