Skip to content

Commit

Permalink
Omitting predicate triggers for opaque functions
Browse files Browse the repository at this point in the history
  • Loading branch information
marcoeilers committed Oct 21, 2023
1 parent 077599f commit 7dd8a62
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/main/scala/supporters/functions/FunctionData.scala
Original file line number Diff line number Diff line change
Expand Up @@ -259,9 +259,13 @@ class FunctionData(val programFunction: ast.Function,
val pre = preconditionFunctionApplication
val nestedDefinitionalAxioms = generateNestedDefinitionalAxioms
val body = And(nestedDefinitionalAxioms ++ List(Implies(pre, And(functionApplication === translatedBody))))
val funcAnn = programFunction.info.getUniqueInfo[ast.AnnotationInfo]
val actualPredicateTriggers = funcAnn match {
case Some(a) if a.values.contains("opaque") => Seq()
case _ => predicateTriggers.values.map(pt => Trigger(Seq(triggerFunctionApplication, pt)))
}
val allTriggers = (
Seq(Trigger(functionApplication))
++ predicateTriggers.values.map(pt => Trigger(Seq(triggerFunctionApplication, pt))))
Seq(Trigger(functionApplication)) ++ actualPredicateTriggers)

Forall(arguments, body, allTriggers)})
}
Expand Down

0 comments on commit 7dd8a62

Please sign in to comment.