Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (set-option :print-success false)
- (set-info :smt-lib-version 2.0)
- (set-option :AUTO_CONFIG false)
- (set-option :MODEL_HIDE_UNUSED_PARTITIONS false)
- (set-option :MODEL_V2 true)
- (set-option :ASYNC_COMMANDS false)
- (set-option :PHASE_SELECTION 0)
- (set-option :RESTART_STRATEGY 0)
- (set-option :RESTART_FACTOR |1.5|)
- (set-option :ARITH_RANDOM_INITIAL_VALUE true)
- (set-option :CASE_SPLIT 3)
- (set-option :DELAY_UNITS true)
- (set-option :DELAY_UNITS_THRESHOLD 16)
- (set-option :NNF_SK_HACK true)
- (set-option :MBQI false)
- (set-option :QI_EAGER_THRESHOLD 100)
- (set-option :QI_COST |"(+ weight generation)"|)
- (set-option :TYPE_CHECK true)
- (set-option :BV_REFLECT true)
- ; done setting options
- ; Boogie universal background predicate
- ; Copyright (c) 2004-2010, Microsoft Corp.
- (set-info :category "industrial")
- (declare-sort |T@U| 0)
- (declare-sort |T@T| 0)
- (declare-fun int_div (Int Int) Int)
- (declare-fun int_mod (Int Int) Int)
- (declare-fun UOrdering2 (|T@U| |T@U|) Bool)
- (declare-fun UOrdering3 (|T@T| |T@U| |T@U|) Bool)
- (declare-fun tickleBool (Bool) Bool)
- (assert (and (tickleBool true) (tickleBool false)))
- (declare-fun Ctor (T@T) Int)
- (declare-fun intType () T@T)
- (declare-fun boolType () T@T)
- (declare-fun int_2_U (Int) T@U)
- (declare-fun U_2_int (T@U) Int)
- (declare-fun type (T@U) T@T)
- (declare-fun bool_2_U (Bool) T@U)
- (declare-fun U_2_bool (T@U) Bool)
- (declare-fun f (Int) Int)
- (declare-fun D () Int)
- (declare-fun MapType0Type (T@T T@T) T@T)
- (declare-fun MapType0TypeInv0 (T@T) T@T)
- (declare-fun MapType0TypeInv1 (T@T) T@T)
- (declare-fun MapType0Select (T@U T@U) T@U)
- (declare-fun MapType0Store (T@U T@U T@U) T@U)
- (declare-fun M () T@U)
- (declare-fun %lbl%+92 () Bool)
- (declare-fun a () Int)
- (declare-fun c () Int)
- (declare-fun b () Int)
- (declare-fun %lbl%@193 () Bool)
- (declare-fun t () Int)
- (declare-fun %lbl%+127 () Bool)
- (assert (and
- (= (Ctor intType) 0)
- (= (Ctor boolType) 1)
- (forall ((arg0 Int) ) (! (= (U_2_int (int_2_U arg0)) arg0)
- :qid |typeInv:U_2_int|
- :pattern ( (int_2_U arg0))
- ))
- (forall ((x T@U) ) (! (=> (= (type x) intType) (= (int_2_U (U_2_int x)) x))
- :qid |cast:U_2_int|
- :pattern ( (U_2_int x))
- ))
- (forall ((arg0@@0 Int) ) (! (= (type (int_2_U arg0@@0)) intType)
- :qid |funType:int_2_U|
- :pattern ( (int_2_U arg0@@0))
- ))
- (forall ((arg0@@1 Bool) ) (! (= (U_2_bool (bool_2_U arg0@@1)) arg0@@1)
- :qid |typeInv:U_2_bool|
- :pattern ( (bool_2_U arg0@@1))
- ))
- (forall ((x@@0 T@U) ) (! (=> (= (type x@@0) boolType) (= (bool_2_U (U_2_bool x@@0)) x@@0))
- :qid |cast:U_2_bool|
- :pattern ( (U_2_bool x@@0))
- ))
- (forall ((arg0@@2 Bool) ) (! (= (type (bool_2_U arg0@@2)) boolType)
- :qid |funType:bool_2_U|
- :pattern ( (bool_2_U arg0@@2))
- ))))
- (assert (forall ((x@@1 T@U) ) (! (UOrdering2 x@@1 x@@1)
- :qid |bg:subtype-refl|
- :no-pattern (U_2_int x@@1)
- :no-pattern (U_2_bool x@@1)
- )))
- (assert (forall ((x@@2 T@U) (y T@U) (z T@U) ) (! (let ((alpha (type x@@2)))
- (=> (and
- (= (type y) alpha)
- (= (type z) alpha)
- (UOrdering2 x@@2 y)
- (UOrdering2 y z)) (UOrdering2 x@@2 z)))
- :qid |bg:subtype-trans|
- :pattern ( (UOrdering2 x@@2 y) (UOrdering2 y z))
- )))
- (assert (forall ((x@@3 T@U) (y@@0 T@U) ) (! (let ((alpha@@0 (type x@@3)))
- (=> (= (type y@@0) alpha@@0) (=> (and
- (UOrdering2 x@@3 y@@0)
- (UOrdering2 y@@0 x@@3)) (= x@@3 y@@0))))
- :qid |bg:subtype-antisymm|
- :pattern ( (UOrdering2 x@@3 y@@0) (UOrdering2 y@@0 x@@3))
- )))
- (assert (forall ((n Int) ) (! (= (f n) (* n D))
- :qid |multipli.3:16|
- :skolemid |0|
- :pattern ( (f n))
- )))
- (assert (and
- (forall ((arg0@@3 T@T) (arg1 T@T) ) (! (= (Ctor (MapType0Type arg0@@3 arg1)) 2)
- :qid |ctor:MapType0Type|
- ))
- (forall ((arg0@@4 T@T) (arg1@@0 T@T) ) (! (= (MapType0TypeInv0 (MapType0Type arg0@@4 arg1@@0)) arg0@@4)
- :qid |typeInv:MapType0TypeInv0|
- :pattern ( (MapType0Type arg0@@4 arg1@@0))
- ))
- (forall ((arg0@@5 T@T) (arg1@@1 T@T) ) (! (= (MapType0TypeInv1 (MapType0Type arg0@@5 arg1@@1)) arg1@@1)
- :qid |typeInv:MapType0TypeInv1|
- :pattern ( (MapType0Type arg0@@5 arg1@@1))
- ))
- (forall ((arg0@@6 T@U) (arg1@@2 T@U) ) (! (let ((aVar1 (MapType0TypeInv1 (type arg0@@6))))
- (= (type (MapType0Select arg0@@6 arg1@@2)) aVar1))
- :qid |funType:MapType0Select|
- :pattern ( (MapType0Select arg0@@6 arg1@@2))
- ))
- (forall ((arg0@@7 T@U) (arg1@@3 T@U) (arg2 T@U) ) (! (let ((aVar1@@0 (type arg2)))
- (let ((aVar0 (type arg1@@3)))
- (= (type (MapType0Store arg0@@7 arg1@@3 arg2)) (MapType0Type aVar0 aVar1@@0))))
- :qid |funType:MapType0Store|
- :pattern ( (MapType0Store arg0@@7 arg1@@3 arg2))
- ))
- (forall ((m T@U) (x0 T@U) (val T@U) ) (! (let ((aVar1@@1 (MapType0TypeInv1 (type m))))
- (=> (= (type val) aVar1@@1) (= (MapType0Select (MapType0Store m x0 val) x0) val)))
- :qid |mapAx0:MapType0Select|
- :weight 0
- ))
- (forall ((val@@0 T@U) (m@@0 T@U) (x0@@0 T@U) (y0 T@U) ) (! (or
- (= x0@@0 y0)
- (= (MapType0Select (MapType0Store m@@0 x0@@0 val@@0) y0) (MapType0Select m@@0 y0)))
- :qid |mapAx1:MapType0Select:0|
- :weight 0
- ))
- (forall ((val@@1 T@U) (m@@1 T@U) (x0@@1 T@U) (y0@@0 T@U) ) (! (or
- true
- (= (MapType0Select (MapType0Store m@@1 x0@@1 val@@1) y0@@0) (MapType0Select m@@1 y0@@0)))
- :qid |mapAx2:MapType0Select|
- :weight 0
- ))
- (= (type M) (MapType0Type intType intType))))
- (push 1)
- (set-info :boogie-vc-id test)
- (assert (not
- (let ((anon0_correct (=> (! (and %lbl%+92 true) :lblpos +92) (=> (and
- (< 0 a)
- (< (* 1000 a) (f 1))) (=> (and
- (< 0 c)
- (< (* 1000 c) (f 1))
- (= (* (f 100) b) (* a c))) (and
- (! (or %lbl%@193 (> (U_2_int (MapType0Select M (int_2_U t))) 0)) :lblneg @193)
- (=> (> (U_2_int (MapType0Select M (int_2_U t))) 0) true)))))))
- (let ((PreconditionGeneratedEntry_correct (=> (! (and %lbl%+127 true) :lblpos +127) anon0_correct)))
- PreconditionGeneratedEntry_correct))
- ))
- (check-sat)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement