Q817-011 proof - use cvc4 for floats
Driver updates and refactoring. Add new floats drivers file. Also add Clément's old transformation (intended for colibri) for elimination of ident/types/etc. Change-Id: I161612592904ed3700b414c01ccab7944654d4d9 (cherry picked from commit a82204236d1e73207dbd71b95236757d0eeacfa2) Conflicts: drivers/cvc4_14.drv drivers/cvc4_15.drv drivers/cvc4_gnatprove.drv drivers/z3_gnatprove.drv drivers/z3_gnatprove_ce.drv
Showing
drivers/cvc4_16.drv
0 → 100644
(** Why3 driver for CVC4 >= 1.6 (with floating point support) *) | ||
prelude ";; produced by cvc4_16.drv ;;" | ||
prelude "(set-info :smt-lib-version 2.5)" | ||
prelude "(set-logic AUFBVFPDTNIRA)" | ||
(* | ||
A : Array | ||
UF : Uninterpreted Function | ||
BV : BitVectors | ||
FP : FloatingPoint | ||
DT : Datatypes | ||
NIRA : NonLinear Integer+Real Arithmetic | ||
*) | ||
prelude "(set-info :source |VC generated by SPARK 2014|)" | ||
prelude "(set-info :category industrial)" | ||
prelude "(set-info :status unknown)" | ||
|
||
import "smt-libv2.drv" | ||
import "smt-libv2-bv.gen" | ||
import "cvc4_bv.gen" | ||
import "smt-libv2-floats.gen" | ||
import "discrimination.gen" | ||
transformation "inline_trivial" | ||
transformation "eliminate_builtin" | ||
transformation "detect_polymorphism" | ||
transformation "eliminate_inductive" | ||
transformation "eliminate_algebraic_if_poly" | ||
transformation "eliminate_literal" | ||
transformation "eliminate_epsilon" | ||
transformation "simplify_formula" | ||
(*transformation "simplify_trivial_quantification"*) | ||
transformation "discriminate_if_poly" | ||
transformation "encoding_smt_if_poly" | ||
(* remove pointless quantifiers from the goal *) | ||
transformation "introduce_premises" | ||
(** Error messages specific to CVC4 *) | ||
outofmemory "(error \".*out of memory\")\\|Cannot allocate memory" | ||
timeout "interrupted by timeout" | ||
steps "smt::SmtEngine::resourceUnitsUsed, \\([0-9]+.?[0-9]*\\)" 1 | ||
(** | ||
Unfortunately, there is no specific output message when CVC4 reaches its resource limit | ||
steplimitexceeded "??" | ||
*) |