Hi,

The following simple patch adds support for rem, which was somehow removed in 
56ac17d0ecdf686bbd10c230629700948a354296. It also slightly updates the heading 
comment.

        Florian
diff --git a/drivers/smt-libv2-floats.gen b/drivers/smt-libv2-floats.gen
index 23ee38434..7790d552b 100644
--- a/drivers/smt-libv2-floats.gen
+++ b/drivers/smt-libv2-floats.gen
@@ -11,6 +11,7 @@ theory ieee_float.GenericFloat
    (* Part I *)
    syntax function abs  "(fp.abs %1)"
    syntax function neg  "(fp.neg %1)"
+   syntax function rem  "(fp.rem %1 %2)"
 
    syntax function add  "(fp.add %1 %2 %3)"
    syntax function sub  "(fp.sub %1 %2 %3)"
diff --git a/theories/ieee_float.why b/theories/ieee_float.why
index 15b0cdb4a..c74a62479 100644
--- a/theories/ieee_float.why
+++ b/theories/ieee_float.why
@@ -5,15 +5,15 @@
   A note on intended semantics: we use the same idea as the SMTLIB floating
   point theory, that defers any inconsistencies to the "parent" document.
   Hence, in doubt, the correct axiomatisation is one that implements
-  [BTRW14] "An Automatable Formal Semantics for IEEE-754 Floating-Point
+  [BTRW15] "An Automatable Formal Semantics for IEEE-754 Floating-Point
   Arithmetic", which in turn defers any inconsistencies to IEEE-754.
 
   This theory is split into two parts: the first part talks about IEEE
   operations and this is what you should use as a user, the second part is
   internal only and is an axiomatisation for the provers that do not
   natively support floating point. You should not use any symbols you find
-  there in your verification conditions as solvers with native floating
-  point support will leave them uninterpreted.
+  there in your verification conditions as drivers for solvers with native
+  floating point support will leave them uninterpreted.
 *)
 
 (** {2 Rounding Modes} *)
@@ -78,6 +78,7 @@ theory GenericFloat
 
   function abs         t   : t   (** Absolute value *)
   function neg         t   : t   (** Opposite *)
+  function rem         t t : t   (** Remainder *)
   function fma  mode t t t : t   (** Fused multiply-add: x * y + z *)
   function sqrt mode   t   : t   (** Square root *)
 
_______________________________________________
Why3-club mailing list
Why3-club@lists.gforge.inria.fr
https://lists.gforge.inria.fr/mailman/listinfo/why3-club

Reply via email to