You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The specification grammar allows providing axioms at the top level, which are then treated as SimplificationRules. However, trying to add such a simplification rule to the input being verified (so not simplify.pvl), as in the following PVL input, triggers an exception:
axiom add { 2 + 2 == 4 }
This kind of node (SimplificationRule) is not supported by silver directly. Is there a rewrite missing?
The same applies to the C, C++ and Java frontends.
[INFO] Done: VerCors (at 16:19:57, duration: 00:00:03)
viper.api.transform.ColToSilver$NotSupported: ======================================
9 }
10
[------------------------
11 axiom Add { 2 + 2 == 4 }
------------------------]
12
13 void `type`() {
--------------------------------------
This kind of node (SimplificationRule) is not supported by silver directly. Is there a rewrite missing?
======================================
at viper.api.transform.ColToSilver.$qmark$qmark(ColToSilver.scala:57)
at viper.api.transform.ColToSilver.collect(ColToSilver.scala:221)
at viper.api.transform.ColToSilver.$anonfun$transform$16(ColToSilver.scala:176)
at viper.api.transform.ColToSilver.$anonfun$transform$16$adapted(ColToSilver.scala:176)
at scala.collection.immutable.List.foreach(List.scala:333)
at viper.api.transform.ColToSilver.transform(ColToSilver.scala:176)
at viper.api.transform.ColToSilver$.transform(ColToSilver.scala:26)
at viper.api.backend.SilverBackend.$anonfun$transform$1(SilverBackend.scala:91)
at hre.progress.task.NameSequenceTask.scope(NameSequenceTask.scala:16)
at hre.progress.Progress$.stages(Progress.scala:47)
at viper.api.backend.SilverBackend.transform(SilverBackend.scala:90)
at viper.api.backend.SilverBackend.transform$(SilverBackend.scala:81)
at viper.api.backend.silicon.Silicon.transform(Silicon.scala:34)
at vct.main.stages.SilverBackend.transform(Backend.scala:196)
at vct.main.stages.Backend.$anonfun$run$3(Backend.scala:152)
at hre.progress.Progress$.$anonfun$map$2(Progress.scala:35)
at hre.progress.task.AbstractTask.frame(AbstractTask.scala:166)
at hre.progress.Progress$.$anonfun$map$1(Progress.scala:35)
at scala.collection.parallel.IterableSplitter$Mapped.next(RemainsIterator.scala:463)
at scala.collection.immutable.List.prependedAll(List.scala:153)
at scala.collection.immutable.List$.from(List.scala:684)
at scala.collection.immutable.List$.from(List.scala:681)
at scala.collection.SeqFactory$Delegate.from(Factory.scala:306)
at scala.collection.immutable.Seq$.from(Seq.scala:42)
at scala.collection.immutable.Seq$.from(Seq.scala:39)
at scala.collection.IterableFactory$ToFactory.fromSpecific(Factory.scala:274)
at scala.collection.IterableOnceOps.to(IterableOnce.scala:1310)
at scala.collection.IterableOnceOps.to$(IterableOnce.scala:1310)
at scala.collection.parallel.IterableSplitter$Mapped.to(RemainsIterator.scala:460)
at vct.main.stages.Backend.$anonfun$run$1(Backend.scala:153)
at hre.progress.task.NameSequenceTask.scope(NameSequenceTask.scala:16)
at hre.progress.Progress$.stages(Progress.scala:47)
at vct.main.stages.Backend.run(Backend.scala:145)
at vct.main.stages.Backend.run$(Backend.scala:137)
at vct.main.stages.SilverBackend.run(Backend.scala:184)
at vct.main.stages.SilverBackend.run(Backend.scala:184)
at hre.stages.Stages.$anonfun$run$3(Stages.scala:104)
at hre.stages.Stages.$anonfun$run$3$adapted(Stages.scala:101)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:576)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:574)
at scala.collection.AbstractIterable.foreach(Iterable.scala:933)
at scala.collection.IterableOps$WithFilter.foreach(Iterable.scala:903)
at hre.stages.Stages.$anonfun$run$1(Stages.scala:101)
at hre.progress.task.NameSequenceTask.scope(NameSequenceTask.scala:16)
at hre.progress.Progress$.stages(Progress.scala:47)
at hre.stages.Stages.run(Stages.scala:98)
at hre.stages.Stages.run$(Stages.scala:95)
at hre.stages.StagesPair.run(Stages.scala:145)
at vct.main.modes.Verify$.verifyWithOptions(Verify.scala:64)
at vct.main.modes.Verify$.$anonfun$runOptions$3(Verify.scala:99)
at scala.runtime.java8.JFunction0$mcI$sp.apply(JFunction0$mcI$sp.scala:17)
at hre.util.Time$.logTime(Time.scala:23)
at vct.main.modes.Verify$.runOptions(Verify.scala:99)
at vct.main.Main$.runMode(Main.scala:107)
at vct.main.Main$.$anonfun$runOptions$3(Main.scala:100)
at scala.runtime.java8.JFunction0$mcI$sp.apply(JFunction0$mcI$sp.scala:17)
at hre.middleware.Middleware$.using(Middleware.scala:78)
at vct.main.Main$.$anonfun$runOptions$2(Main.scala:100)
at scala.runtime.java8.JFunction0$mcI$sp.apply(JFunction0$mcI$sp.scala:17)
at hre.io.Watch$.booleanWithWatch(Watch.scala:58)
at vct.main.Main$.$anonfun$runOptions$1(Main.scala:100)
at scala.runtime.java8.JFunction0$mcI$sp.apply(JFunction0$mcI$sp.scala:17)
at hre.middleware.Middleware$.using(Middleware.scala:78)
at vct.main.Main$.runOptions(Main.scala:95)
at vct.main.Main$.main(Main.scala:50)
at vct.main.Main.main(Main.scala)
[ERROR] !*!*!*!*!*!*!*!*!*!*!*!
[ERROR] ! VerCors has crashed !
[ERROR] !*!*!*!*!*!*!*!*!*!*!*!
The specification grammar allows providing
axiom
s at the top level, which are then treated asSimplificationRule
s. However, trying to add such a simplification rule to the input being verified (so notsimplify.pvl
), as in the following PVL input, triggers an exception:The same applies to the C, C++ and Java frontends.
Version: 2bd3bca (dev branch).
This issue was found by fuzzing.
The text was updated successfully, but these errors were encountered: