Currently, the fastforce run of state_machine_bisimulation uses the default handling of let expressions, which, according to our understanding, invokes Let_def as a simplification rule only when the variable bound by let is used at most once. This makes state_machine_bisimulation too weak to handle certain programs. Concretely, we encountered this issue when resolving #81.
According to our understanding, adding Let_def as a simplification rule may cause the prover to run very long, because terms may grow drastically in size by let expansion, but it may not prevent termination of the prover. Since the terms that are bound to variables by let within programs should typically be fairly small, we consider adding Let_def as a simplification rule viable and consequently call for doing this.
Currently, the
fastforce
run ofstate_machine_bisimulation
uses the default handling oflet
expressions, which, according to our understanding, invokesLet_def
as a simplification rule only when the variable bound bylet
is used at most once. This makesstate_machine_bisimulation
too weak to handle certain programs. Concretely, we encountered this issue when resolving #81.According to our understanding, adding
Let_def
as a simplification rule may cause the prover to run very long, because terms may grow drastically in size bylet
expansion, but it may not prevent termination of the prover. Since the terms that are bound to variables bylet
within programs should typically be fairly small, we consider addingLet_def
as a simplification rule viable and consequently call for doing this.