Skip to content
Snippets Groups Projects
Commit f1b6cfb9 authored by François Bobot's avatar François Bobot
Browse files

[Trigger] remove variable as possible triggers

parent 83133aa5
No related branches found
No related tags found
1 merge request!25[Quant] Substitute by prefering existing terms to new equal one
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
--dont-print-result %{dep:fact-FactRecursive-fact_recqtvc.psmt2})) (package colibri2)) --dont-print-result %{dep:fact-FactRecursive-fact_recqtvc.psmt2})) (package colibri2))
(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:fact-FactRecursive-fact_recqtvc.psmt2})) (package colibri2)) (rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:fact-FactRecursive-fact_recqtvc.psmt2})) (package colibri2))
(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat
--dont-print-result %{dep:float_interval-GenericFloat-add_special_1.psmt2})) (package colibri2))
(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:float_interval-GenericFloat-add_special_1.psmt2})) (package colibri2))
(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat
--dont-print-result %{dep:interval-Convexe-exists_memqtvc_1.psmt2})) (package colibri2)) --dont-print-result %{dep:interval-Convexe-exists_memqtvc_1.psmt2})) (package colibri2))
(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:interval-Convexe-exists_memqtvc_1.psmt2})) (package colibri2)) (rule (alias runtest-learning) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:interval-Convexe-exists_memqtvc_1.psmt2})) (package colibri2))
(rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat (rule (alias runtest) (action (run %{bin:colibri2} --size=50M --time=60s --max-steps 3500 --check-status unsat
......
;; produced by local colibri2.drv ;; ;; produced by local colibri2.drv ;;
(set-logic ALL) (set-logic ALL)
(set-info :smt-lib-version 2.6) (set-info :smt-lib-version 2.6)
(set-option :max-steps-colibri2 8000)
;;; SMT-LIB2: integer arithmetic ;;; SMT-LIB2: integer arithmetic
;;; SMT-LIB2: real arithmetic ;;; SMT-LIB2: real arithmetic
(declare-sort string 0) (declare-sort string 0)
...@@ -317,7 +318,7 @@ ...@@ -317,7 +318,7 @@
(declare-fun truncate (Real) Int) (declare-fun truncate (Real) Int)
;; Truncate_int ;; Truncate_int
;;(assert (forall ((i Int)) (= (truncate (to_real i)) i))) (assert (forall ((i Int)) (= (truncate (to_real i)) i)))
;; Truncate_down_pos ;; Truncate_down_pos
(assert (assert
...@@ -327,57 +328,57 @@ ...@@ -327,57 +328,57 @@
(and (<= (to_real (truncate x)) x) (< x (to_real (+ (truncate x) 1))))))) (and (<= (to_real (truncate x)) x) (< x (to_real (+ (truncate x) 1)))))))
;; Truncate_up_neg ;; Truncate_up_neg
;; (assert (assert
;; (forall ((x Real)) (forall ((x Real))
;; (=> (=>
;; (<= x 0.0) (<= x 0.0)
;; (and (< (to_real (- (truncate x) 1)) x) (<= x (to_real (truncate x))))))) (and (< (to_real (- (truncate x) 1)) x) (<= x (to_real (truncate x)))))))
;; ;; Real_of_truncate ;; Real_of_truncate
;; (assert (assert
;; (forall ((x Real)) (forall ((x Real))
;; (and (and
;; (<= (- x 1.0) (to_real (truncate x))) (<= (- x 1.0) (to_real (truncate x)))
;; (<= (to_real (truncate x)) (+ x 1.0))))) (<= (to_real (truncate x)) (+ x 1.0)))))
;; ;; Truncate_monotonic ;; Truncate_monotonic
;; ;;(assert ;;(assert
;; ;; (forall ((x Real) (y Real)) (=> (<= x y) (<= (truncate x) (truncate y))))) ;; (forall ((x Real) (y Real)) (=> (<= x y) (<= (truncate x) (truncate y)))))
;; ;; Truncate_monotonic_int1 ;; Truncate_monotonic_int1
;; (assert (assert
;; (forall ((x Real) (i Int)) (=> (<= x (to_real i)) (<= (truncate x) i)))) (forall ((x Real) (i Int)) (=> (<= x (to_real i)) (<= (truncate x) i))))
;; ;; Truncate_monotonic_int2 ;; Truncate_monotonic_int2
;; (assert (assert
;; (forall ((x Real) (i Int)) (=> (<= (to_real i) x) (<= i (truncate x))))) (forall ((x Real) (i Int)) (=> (<= (to_real i) x) (<= i (truncate x)))))
;;Floor_int ;;Floor_int
(assert (forall ((i Int)) (= (to_int (to_real i)) i))) (assert (forall ((i Int)) (= (to_int (to_real i)) i)))
;; Ceil_int ;;Ceil_int
;;(assert (forall ((i Int)) (= (- (to_int (- (to_real i)))) i))) (assert (forall ((i Int)) (= (- (to_int (- (to_real i)))) i)))
;; ;; Floor_down ;; Floor_down
;; (assert (assert
;; (forall ((x Real)) (forall ((x Real))
;; (and (<= (to_real (to_int x)) x) (< x (to_real (+ (to_int x) 1)))))) (and (<= (to_real (to_int x)) x) (< x (to_real (+ (to_int x) 1))))))
;; ;; Ceil_up ;; Ceil_up
;; (assert (assert
;; (forall ((x Real)) (forall ((x Real))
;; (and (and
;; (< (to_real (- (- (to_int (- x))) 1)) x) (< (to_real (- (- (to_int (- x))) 1)) x)
;; (<= x (to_real (- (to_int (- x)))))))) (<= x (to_real (- (to_int (- x))))))))
;; Floor_monotonic ;; Floor_monotonic
(assert (assert
(forall ((x Real) (y Real)) (=> (<= x y) (<= (to_int x) (to_int y))))) (forall ((x Real) (y Real)) (=> (<= x y) (<= (to_int x) (to_int y)))))
;; ;; Ceil_monotonic ;; Ceil_monotonic
;; (assert (assert
;; (forall ((x Real) (y Real)) (forall ((x Real) (y Real))
;; (=> (<= x y) (<= (- (to_int (- x))) (- (to_int (- y))))))) (=> (<= x y) (<= (- (to_int (- x))) (- (to_int (- y)))))))
;; infix +. ;; infix +.
(define-fun infix_pldt ((x Real) (y Real)) Real (define-fun infix_pldt ((x Real) (y Real)) Real
......
...@@ -72,7 +72,7 @@ let create = ...@@ -72,7 +72,7 @@ let create =
}; };
} }
let stat = Debug.register_stats_int "InvertedPath.exec" let stat = Debug.register_stats_int "Quantifier.InvertedPath.exec"
let rec exec d acc substs n ip = let rec exec d acc substs n ip =
Debug.dprintf5 debug_full "[Quant] Exec: %a, %a[%i]" Node.pp n Debug.dprintf5 debug_full "[Quant] Exec: %a, %a[%i]" Node.pp n
......
...@@ -178,6 +178,9 @@ let compute_top_triggers d (cq : Ground.ClosedQuantifier.t) = ...@@ -178,6 +178,9 @@ let compute_top_triggers d (cq : Ground.ClosedQuantifier.t) =
| Expr.App ({ term_descr = Cst { builtin; _ }; _ }, _, tl) | Expr.App ({ term_descr = Cst { builtin; _ }; _ }, _, tl)
when Info.Builtin_skipped_for_trigger.skipped d builtin -> when Info.Builtin_skipped_for_trigger.skipped d builtin ->
List.fold_left aux pats tl List.fold_left aux pats tl
| Expr.Var _ ->
(* variable alone are bad pattern *)
pats
| _ -> t :: pats | _ -> t :: pats
in in
let pats = CCList.sort_uniq ~cmp:Expr.Term.compare (aux [] t) in let pats = CCList.sort_uniq ~cmp:Expr.Term.compare (aux [] t) in
...@@ -406,9 +409,10 @@ module Delayed_instantiation = struct ...@@ -406,9 +409,10 @@ module Delayed_instantiation = struct
let run d (tri, subst) = let run d (tri, subst) =
let instantiate d = let instantiate d =
Debug.dprintf8 debug_instantiation Debug.dprintf10 debug_instantiation
"[Quant] %a delayed instantiation %a, pat %a, checks:%a" Ground.Subst.pp "[Quant] %a delayed instantiation %a, pat %a %a, checks:%a"
subst Ground.ClosedQuantifier.pp tri.form Ground.Subst.pp subst Ground.ClosedQuantifier.pp tri.form Pattern.pp
tri.pat
Fmt.(list ~sep:comma Pattern.pp) Fmt.(list ~sep:comma Pattern.pp)
tri.pats tri.pats
Fmt.(list ~sep:comma Pattern.pp) Fmt.(list ~sep:comma Pattern.pp)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment