import "cvc5_counterexample.drv"
import "smt-libv2-gnatprove.gen"
import "smt-libv2-floats-gnatprove.gen"
import "smt-libv2-floats-int_via_real.gen"

steps "resource::resourceUnitsUsed = \\([0-9]+.?[0-9]*\\)" 1

theory ieee_float.GenericFloat
 remove prop le_special
 remove prop lt_special
 remove prop eq_special
 remove prop add_special
 remove prop sub_special
 remove prop mul_special
 remove prop div_special
 remove prop neg_special
 remove prop fma_finite
 remove prop fma_special
 remove prop sqrt_finite
 remove prop sqrt_special
end

theory real.Square
 remove allprops
end

theory int.EuclideanDivision
  syntax function div "(div %1 %2)"
  syntax function mod "(mod %1 %2)"

  remove allprops
end

theory int.ComputerDivision
  prelude "(define-fun __cdiv ((x Int) (y Int)) Int (ite (>= x 0) (div x y) (- (div (- x) y))))"
  prelude "(define-fun __cmod ((x Int) (y Int)) Int (ite (>= x 0) (mod x y) (- (mod (- x) y))))"

  syntax function div "(__cdiv %1 %2)"
  syntax function mod "(__cmod %1 %2)"

  remove allprops
end
