(* Why3 driver for veriT solver *)

prelude ";;; this is a prelude for veriT"
prelude "(set-logic AUFLIRA)"
(* A  : Array
   UF : Uninterpreted Function
   LIRA : Linear Integer Reals Arithmetic
*)

import "smt-libv2.gen"
printer "smtv2"
import "discrimination.gen"

(* specific message from veriT 201310 *)
unknown "non-linear reasoning desactivated" ""
(* specific message from veriT 201410 *)
unknown "error : Non linear expression with non-linear reasoning disabled" ""

transformation "inline_trivial"

transformation "eliminate_builtin"
transformation "eliminate_definition"
transformation "eliminate_inductive"
transformation "eliminate_epsilon"
transformation "eliminate_algebraic"
transformation "eliminate_literal"

transformation "simplify_formula"
(*transformation "simplify_trivial_quantification"*)

transformation "encoding_smt"
transformation "encoding_sort"

(*
disabled: veriT seems more efficient with the axiomatic version
theory int.EuclideanDivision
  syntax function div "(div %1 %2)"
  syntax function mod "(mod %1 %2)"
  remove prop Mod_bound
  remove prop Div_mod
  remove prop Mod_1
  remove prop Div_1
end
*)
