Skip to content
Snippets Groups Projects
Commit 9806d230 authored by Manos Koukoutos's avatar Manos Koukoutos
Browse files

No forall in cvc4-cex

parent 27e7049b
No related branches found
No related tags found
No related merge requests found
......@@ -20,4 +20,5 @@ class SMTLIBCVC4CounterExampleSolver(context: LeonContext, program: Program) ext
) ++ userDefinedOps(ctx)
}
val allowQuantifiedAssersions: Boolean = false
}
......@@ -54,4 +54,6 @@ class SMTLIBCVC4ProofSolver(context: LeonContext, program: Program) extends SMTL
other
}
}
protected val allowQuantifiedAssersions: Boolean = true
}
......@@ -29,6 +29,8 @@ abstract class SMTLIBCVC4QuantifiedSolver(context: LeonContext, program: Program
private val typedFunDefExplorationLimit = 10000
protected val allowQuantifiedAssersions: Boolean
override def declareFunction(tfd: TypedFunDef): SSymbol = {
val (funs, exploredAll) = typedTransitiveCallees(Set(tfd), Some(typedFunDefExplorationLimit))
if (!exploredAll) {
......@@ -94,7 +96,7 @@ abstract class SMTLIBCVC4QuantifiedSolver(context: LeonContext, program: Program
if (smtFunDecls.nonEmpty) {
sendCommand(DefineFunsRec(smtFunDecls, smtBodies))
// Assert contracts for defined functions
for {
if (allowQuantifiedAssersions) for {
// If we encounter a function that does not refer to the current function,
// it is sound to assume its contracts for all inputs
tfd <- withParams if !refersToCurrent(tfd.fd)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment