diff --git a/UnitTests/sat/QF_FP/square_id_fp_sat.smt2 b/UnitTests/sat/QF_FP/square_id_fp_sat.smt2 new file mode 100644 index 0000000000000000000000000000000000000000..0c338851a823dfc53094ac9b4328337a1fb9ca3c --- /dev/null +++ b/UnitTests/sat/QF_FP/square_id_fp_sat.smt2 @@ -0,0 +1,50 @@ + +(set-info :smt-lib-version 2.6) +(set-logic QF_FP) +(set-info :category |Crafted from GATeL POs|) +(set-info :status sat) + +(declare-fun dx () Float64) +(declare-fun dy () Float64) + +(define-fun isFinite ((F Float64)) Bool + (and (not (fp.isInfinite F)) + (not (fp.isNaN F)))) + +(define-fun one () Float64 + ((_ to_fp 11 53) (_ bv4607182418800017408 64))) + +(define-fun two () Float64 + ((_ to_fp 11 53) (_ bv4611686018427387904 64))) + +(define-fun xpy2 () Float64 + (fp.mul RNE (fp.add RNE dx dy) (fp.add RNE dx dy))) + +(define-fun id_xpy2 () Float64 + (fp.add RNE (fp.add RNE (fp.mul RNE dx dx) (fp.mul RNE dy dy)) + (fp.mul RNE two (fp.mul RNE dx dy)))) + +(define-fun isInsideAbsMax ((xx Float64) (max Float64)) Bool + (and + (isFinite xx) + (fp.leq (fp.neg max) xx max))) + +(define-fun diff () Float64 + (fp.sub RNE xpy2 id_xpy2)) + +(define-fun max_diff () Float64 +;; 2^-53 + ((_ to_fp 11 53) (_ bv4368491638549381120 64))) + +(assert + (not + (=> + (and (isInsideAbsMax dx one) + (not (fp.isZero dx)) + (isInsideAbsMax dy one) + (not (fp.isZero dy)) + (isFinite diff)) + (isInsideAbsMax diff max_diff)))) + +(check-sat) + diff --git a/UnitTests/sat/QF_FP/square_neg_id_fp_sat.smt2 b/UnitTests/sat/QF_FP/square_neg_id_fp_sat.smt2 new file mode 100644 index 0000000000000000000000000000000000000000..311e5d200c8ee5e403eb00945081cc084fb508b2 --- /dev/null +++ b/UnitTests/sat/QF_FP/square_neg_id_fp_sat.smt2 @@ -0,0 +1,50 @@ + +(set-info :smt-lib-version 2.6) +(set-logic ALL) +(set-info :category |Crafted from GATeL POs|) +;(set-info :status sat) + +(declare-fun dx () Float64) +(declare-fun dy () Float64) + +(define-fun isFinite ((F Float64)) Bool + (and (not (fp.isInfinite F)) + (not (fp.isNaN F)))) + +(define-fun one () Float64 + ((_ to_fp 11 53) (_ bv4607182418800017408 64))) + +(define-fun two () Float64 + (fp #b0 #b10000000000 #b0000000000000000000000000000000000000000000000000000)) + +(define-fun xmy2 () Float64 + (fp.mul RNE (fp.sub RNE dx dy) (fp.sub RNE dx dy))) + +(define-fun id_xmy2 () Float64 + (fp.sub RNE (fp.add RNE (fp.mul RNE dx dx) (fp.mul RNE dy dy)) + (fp.mul RNE two (fp.mul RNE dx dy)))) + +(define-fun isInsideAbsMax ((x Float64) (max Float64)) Bool + (and + (isFinite x) + (fp.leq (fp.neg max) x max))) + +(define-fun diff () Float64 + (fp.sub RNE xmy2 id_xmy2)) + +(define-fun max_diff () Float64 +;; 2^-53 + ((_ to_fp 11 53) (_ bv4368491638549381120 64))) + +(assert + (not + (=> + (and (isInsideAbsMax dx one) + (not (fp.isZero dx)) + (isInsideAbsMax dy one) + (not (fp.isZero dy)) + (isFinite diff)) + (isInsideAbsMax diff max_diff)))) + +(check-sat) +