A set filter over PowSet[FinSet[Int]] is not implemented
thpani opened this issue · 0 comments
thpani commented
Spin-out from #878, which contained two reports in a single issue.
Apalache throws A set filter over PowSet[FinSet[Int]] is not implemented
------- MODULE Foo -------
EXTENDS Integers
CONSTANT
\* @type: Set(Int);
S
ConstInit ==
LET ss == SUBSET {1,2}
sss == ss \ {{}}
IN S \in sss
VARIABLE
\* @type: Set(Int);
x
Init ==
x = S
Next ==
UNCHANGED x
Inv ==
x # {}
==========================
markus@avocado:~$ apalache check --cinit=ConstInit --inv=Inv Foo
# Tool home: /home/markus/src/TLA/_community/apalache
# Package: /home/markus/src/TLA/_community/apalache/mod-distribution/target/apalache-pkg-0.15.9-SNAPSHOT-full.jar
# JVM args: -Xmx4096m -DTLA-Library=/home/markus/src/TLA/_community/apalache/src/tla
#
# APALACHE version 0.15.9-SNAPSHOT build v0.15.8-3-g6a26844
#
# WARNING: This tool is in the experimental stage.
# Please report bugs at: [https://github.com/informalsystems/apalache/issues]
#
# Usage statistics is ON. Thank you!
# If you have changed your mind, disable the statistics with config --enable-stats=false.
Checker options: filename=Foo, init=, next=, inv=Inv I@15:14:36.647
Tuning: I@15:14:37.142
PASS #0: SanyParser I@15:14:37.143
Parsing file /home/markus/src/TLA/_specs/models/tutorials/BlockingQueueTLA/Foo.tla
Parsing file /tmp/Integers.tla
Parsing file /tmp/Naturals.tla
PASS #1: TypeCheckerSnowcat I@15:14:37.899
> Running Snowcat .::. I@15:14:37.900
> Your types are great! I@15:14:38.032
> All expressions are typed I@15:14:38.033
PASS #2: ConfigurationPass I@15:14:38.099
> Foo: Loading TLC configuration I@15:14:38.102
> No TLC configuration found. Skipping. I@15:14:38.108
> Command line option --init is not set. Using Init I@15:14:38.108
> Command line option --next is not set. Using Next I@15:14:38.108
> Set the initialization predicate to Init I@15:14:38.109
> Set the constant initialization predicate to ConstInit I@15:14:38.110
> Set the transition predicate to Next I@15:14:38.110
> Set an invariant to Inv I@15:14:38.111
PASS #3: DesugarerPass I@15:14:38.169
> Desugaring... I@15:14:38.176
PASS #4: UnrollPass I@15:14:38.254
> Unroller I@15:14:38.300
PASS #5: PrimingPass I@15:14:38.352
> Introducing ConstInitPrimed for ConstInit' I@15:14:38.361
> Introducing InitPrimed for Init' I@15:14:38.371
PASS #6: CoverAnalysisPass I@15:14:38.410
PASS #7: InlinePass I@15:14:38.419
> InlinerOfUserOper I@15:14:38.426
> LetInExpander I@15:14:38.436
> FoldOperLetinizer I@15:14:38.440
> InlinerOfUserOper I@15:14:38.443
Leaving only relevant operators: ConstInit, ConstInitPrimed, Init, InitPrimed, Inv, Next I@15:14:38.445
PASS #8: VCGen I@15:14:38.507
> Producing verification conditions from the invariant Inv I@15:14:38.508
> VCGen produced 1 verification condition(s) I@15:14:38.520
PASS #9: PreprocessingPass I@15:14:38.566
> Before preprocessing: unique renaming I@15:14:38.567
> Applying standard transformations: I@15:14:38.575
> PrimePropagation I@15:14:38.576
> Desugarer I@15:14:38.621
> UniqueRenamer I@15:14:38.717
> Normalizer I@15:14:38.837
> Keramelizer I@15:14:38.918
> After preprocessing: UniqueRenamer I@15:14:39.033
PASS #10: TransitionFinderPass I@15:14:39.085
> Found 1 initializing transitions I@15:14:39.179
> Found 1 transitions I@15:14:39.182
> Found constant initializer ConstInit I@15:14:39.182
> Applying unique renaming I@15:14:39.185
PASS #11: OptimizationPass I@15:14:39.221
> Applying optimizations: I@15:14:39.263
> ConstSimplifier I@15:14:39.265
> ExprOptimizer I@15:14:39.271
> ConstSimplifier I@15:14:39.275
PASS #12: AnalysisPass I@15:14:39.291
> Marking skolemizable existentials and sets to be expanded... I@15:14:39.294
> SkolemizationMarker I@15:14:39.298
> ExpansionMarker I@15:14:39.301
> Running analyzers... I@15:14:39.311
> Introduced expression grades I@15:14:39.335
> Introduced 0 formula hints I@15:14:39.335
PASS #13: PostTypeCheckerSnowcat I@15:14:39.336
> Running Snowcat .::. I@15:14:39.336
> Your types are great! I@15:14:39.503
> All expressions are typed I@15:14:39.504
PASS #14: BoundedChecker I@15:14:39.526
(Please report an issue at: [https://github.com/informalsystems/apalache/issues],scala.NotImplementedError: A set filter over PowSet[FinSet[Int]] is not implemented)
Unhandled exception E@15:14:39.964
scala.NotImplementedError: A set filter over PowSet[FinSet[Int]] is not implemented
at at.forsyte.apalache.tla.bmcmt.rules.SetFilterRule.apply(SetFilterRule.scala:29)
at at.forsyte.apalache.tla.bmcmt.SymbStateRewriterImpl.rewriteOnce(SymbStateRewriterImpl.scala:336)
at at.forsyte.apalache.tla.bmcmt.SymbStateRewriterImpl.doRecursive$1(SymbStateRewriterImpl.scala:367)
at at.forsyte.apalache.tla.bmcmt.SymbStateRewriterImpl.rewriteUntilDone(SymbStateRewriterImpl.scala:401)
at at.forsyte.apalache.tla.bmcmt.rules.LetInRule.bindOperator(LetInRule.scala:44)
at at.forsyte.apalache.tla.bmcmt.rules.LetInRule.$anonfun$apply$1(LetInRule.scala:25)
at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
at scala.collection.immutable.List.foldLeft(List.scala:91)
at at.forsyte.apalache.tla.bmcmt.rules.LetInRule.apply(LetInRule.scala:25)
at at.forsyte.apalache.tla.bmcmt.SymbStateRewriterImpl.rewriteOnce(SymbStateRewriterImpl.scala:336)
at at.forsyte.apalache.tla.bmcmt.SymbStateRewriterImpl.doRecursive$1(SymbStateRewriterImpl.scala:367)
at at.forsyte.apalache.tla.bmcmt.SymbStateRewriterImpl.rewriteUntilDone(SymbStateRewriterImpl.scala:401)
at at.forsyte.apalache.tla.bmcmt.trex.TransitionExecutorImpl.initializeConstants(TransitionExecutorImpl.scala:60)
at at.forsyte.apalache.tla.bmcmt.trex.FilteredTransitionExecutor.initializeConstants(FilteredTransitionExecutor.scala:96)
at at.forsyte.apalache.tla.bmcmt.trex.ConstrainedTransitionExecutor.initializeConstants(ConstrainedTransitionExecutor.scala:90)
at at.forsyte.apalache.tla.bmcmt.SeqModelChecker.run(SeqModelChecker.scala:44)
at at.forsyte.apalache.tla.bmcmt.passes.BoundedCheckerPassImpl.runIncrementalChecker(BoundedCheckerPassImpl.scala:131)
at at.forsyte.apalache.tla.bmcmt.passes.BoundedCheckerPassImpl.execute(BoundedCheckerPassImpl.scala:98)
at at.forsyte.apalache.infra.passes.PassChainExecutor.exec$1(PassChainExecutor.scala:22)
at at.forsyte.apalache.infra.passes.PassChainExecutor.run(PassChainExecutor.scala:37)
at at.forsyte.apalache.tla.Tool$.runCheck(Tool.scala:187)
at at.forsyte.apalache.tla.Tool$.$anonfun$run$3(Tool.scala:95)
at at.forsyte.apalache.tla.Tool$.handleExceptions(Tool.scala:322)
at at.forsyte.apalache.tla.Tool$.run(Tool.scala:95)
at at.forsyte.apalache.tla.Tool$.main(Tool.scala:45)
at at.forsyte.apalache.tla.Tool.main(Tool.scala)
It took me 0 days 0 hours 0 min 3 sec I@15:14:39.966
Total time: 3.398 sec I@15:14:39.967
EXITCODE: ERROR (255)
Originally posted by @lemmy in #878 (comment)